如何在java中将Protobuf ByteString转换为String

时间:2017-06-02 09:49:45

标签: java protocol-buffers

有谁能告诉我如何在java中将protobuf ByteString转换为String?

就我而言,我将ByteString值设为“\ 376 \ 024 \ 367”。有没有办法从ByteString获得与String相同的方法?我的意思是当我使用System.out.println()在控制台中打印字符串值时,我应该得到\ 376 \ 024 \ 367。

非常感谢。

2 个答案:

答案 0 :(得分:12)

通常,您使用ByteString#toString(Charset)将ByteString转换为String。此方法允许您指定文本编码的字符集。如果它是UTF-8,您还可以使用方法toStringUtf8()作为快捷方式。

但是,从您的问题来看,听起来您实际上想要使用C风格的三位八进制转义生成转义格式。 AFAIK没有这方面的公共职能,但是you can see the code here。您可以将该代码复制到您自己的项目中并使用它。

答案 1 :(得分:-1)

我用http://doc.akka.io/japi/akka/2.3.7/akka/util/ByteString.ByteStrings.html 您将看到方法decodeString(java.lang.String charset)

其他请参阅https://github.com/akka/akka/issues/18738