使用protobuf时如何将字符串转换为ByteString?

How to convert string to ByteString when using protobuf?

我想将字符串对象转换为 ByteString.I 已尝试使用 ByteString.CopyFrom() 函数进行转换,但 return 值始终为 "{Google.ProtocolBuffers.ByteString }“。为什么?我该怎么办?

The function i use like this.

The result

您的 string 已成功转换为 ByteStream。如果你在手表 window 中看到 {Google.ProtocolBuffers.ByteString},这只是意味着 ByteStream 没有覆盖 ToString 方法。简而言之,Visual Studio 不知道如何显示 ByteStream,因此只显示类型名称。

也就是说,CopyFrom 方法有一个重载,允许您直接使用字符串:

var APP_DEF_TEA_KEY = ByteString.CopyFrom("e#>&*m16", Encoding.Unicode);

根据the docsGoogle.ProtocolBuffers.ByteStream需要一种编码来知道如何显示其内容。使用 ByteStream.ToString(Encoding encoding)ByteStream.ToStringUtf8().

您可以使用 ByteString class 中的一种方法将字符串转换为 ByteArray ByteString.copyFromUtf8(stringText).