#c# #protocol-buffers #protobuf-csharp-port
#c# #буферы протоколов #protobuf-csharp-port #протокол-буферы
Вопрос:
Я хочу преобразовать объект string в байтовую строку.Я пытался использовать байтовую строку.Функция copyFrom() для преобразования, но возвращаемое значение всегда равно «{Google.ProtocolBuffers .Байтовая строка}».Почему? Как я могу сделать?
Комментарии:
1. байтовый[] массив = кодирование. ASCII. getBytes(ввод);
Ответ №1:
Ваш string
файл был успешно преобразован в ByteStream
. Если вы видите {Google.ProtocolBuffers .ByteString} в окне просмотра это просто означает, что метод ByteStream
не переопределяет ToString
метод. Короче говоря, Visual Studio не знает, как отобразить a ByteStream
, и поэтому вместо этого просто отображает имя типа.
Тем не менее, существует перегрузка CopyFrom
метода, которая позволяет вам напрямую использовать строку:
var APP_DEF_TEA_KEY = ByteString.CopyFrom("e#>amp;*m16", Encoding.Unicode);
Комментарии:
1. Понял! Спасибо за ваш ответ!
Ответ №2:
Согласно документам, Google.ProtocolBuffers.ByteStream
требуется кодировка, чтобы знать, как отображать ее содержимое. Используйте ByteStream.ToString(Encoding encoding)
или ByteStream.ToStringUtf8()
.
Ответ №3:
Вы можете использовать один из методов класса ByteString для преобразования строки в ByteArray ByteString.copyFromUtf8(stringText)
.