使用protobuf时如何将字符串转换为ByteString?
How to convert string to ByteString when using protobuf?
我想将字符串对象转换为 ByteString.I 已尝试使用 ByteString.CopyFrom() 函数进行转换,但 return 值始终为 "{Google.ProtocolBuffers.ByteString }“。为什么?我该怎么办?
您的 string
已成功转换为 ByteStream
。如果你在手表 window 中看到 {Google.ProtocolBuffers.ByteString},这只是意味着 ByteStream
没有覆盖 ToString
方法。简而言之,Visual Studio 不知道如何显示 ByteStream
,因此只显示类型名称。
也就是说,CopyFrom
方法有一个重载,允许您直接使用字符串:
var APP_DEF_TEA_KEY = ByteString.CopyFrom("e#>&*m16", Encoding.Unicode);
根据the docs,Google.ProtocolBuffers.ByteStream
需要一种编码来知道如何显示其内容。使用 ByteStream.ToString(Encoding encoding)
或 ByteStream.ToStringUtf8()
.
您可以使用 ByteString class 中的一种方法将字符串转换为 ByteArray
ByteString.copyFromUtf8(stringText)
.
我想将字符串对象转换为 ByteString.I 已尝试使用 ByteString.CopyFrom() 函数进行转换,但 return 值始终为 "{Google.ProtocolBuffers.ByteString }“。为什么?我该怎么办?
您的 string
已成功转换为 ByteStream
。如果你在手表 window 中看到 {Google.ProtocolBuffers.ByteString},这只是意味着 ByteStream
没有覆盖 ToString
方法。简而言之,Visual Studio 不知道如何显示 ByteStream
,因此只显示类型名称。
也就是说,CopyFrom
方法有一个重载,允许您直接使用字符串:
var APP_DEF_TEA_KEY = ByteString.CopyFrom("e#>&*m16", Encoding.Unicode);
根据the docs,Google.ProtocolBuffers.ByteStream
需要一种编码来知道如何显示其内容。使用 ByteStream.ToString(Encoding encoding)
或 ByteStream.ToStringUtf8()
.
您可以使用 ByteString class 中的一种方法将字符串转换为 ByteArray
ByteString.copyFromUtf8(stringText)
.