Hello all;
I need to serialize a protobuf message to a string so that it can be
passed outside my program. The below fails, I'm guessing due to UTF8
encoding issues:
byte[] arr = msg.toByteArray();
String str = new String(arr);
// ... pass str around ...
MsgType msg2 =
Strings contain text, not arbitrary bytes. Encoded protocol buffers are
arbitrary bytes, not text. So, they aren't compatible. You would need to
do something like base-64 encode the data in order to put it in a String.
On Tue, Nov 24, 2009 at 3:16 PM, Will Morton will.mor...@gmail.com wrote:
2009/11/25 Adam Vartanian flo...@google.com:
What am I doing wrong? What's the best way to do java string
serialization of protobuf messages?
If you absolutely have to pass things around as a String, you're going
to need to do so in some kind of encoding that supports arbitrary
data. For
You can use TextFormat but it is probably *less* efficient than base64.
On Tue, Nov 24, 2009 at 4:14 PM, Will Morton will.mor...@gmail.com wrote:
2009/11/25 Adam Vartanian flo...@google.com:
What am I doing wrong? What's the best way to do java string
serialization of protobuf messages?
What am I doing wrong? What's the best way to do java string
serialization of protobuf messages?
The native wire format of protocol buffers is just a sequence of
bytes, so it can contain values that are invalid UTF-8 (or any
encoding that has invalid byte sequences). Trying to pack that into