协议缓冲区说它可以contain any arbitrary sequence of bytes。但如果我的数据包含'\ 0',协议缓冲区如何编码我的整个数据从一个字符串变量。协议缓冲区字节为什么在C++中是字符串?
13
A
回答
12
协议缓冲区的C++实现返回的字节和字符串类型为std::string
。这个结构包含一个长度函数,告诉你相应数据的时间长度(以及数据本身)。因此,嵌入的字符没有特别的意义。
设置函数也接受一个字符串,或者有接受缓冲区和长度的版本。 如果你想设置一个字段,你可以只是这样做:
pb.set_foo(std::string(data, data_length));
或
pb.set_foo(data, data_length);
+0
参见https://stackoverflow.com/questions/2845769/can-a-stdstring-contain-embedded-nulls – Raedwald 2017-11-23 22:42:38
相关问题
- 1. 字典在协议缓冲区
- 2. 字节缓冲区,字符串
- 3. 协议缓冲区c#(protobuf-net)消息::字节大小
- 4. 谷歌协议缓冲区消息到字节数组C++(Windows)
- 5. 协议缓冲区
- 6. 谷歌协议缓冲区:找出什么消息编码在字节[]
- 7. std ::字符串与字节缓冲区(差异在c + +)
- 8. 协议缓冲区数组中的字节浪费?
- 9. 协议缓冲区在解析时是否重用了字符串指针?
- 10. 谷歌的协议缓冲区在c#
- 11. C字符串静态缓冲区的字节大小
- 12. C#将字符串复制到字节缓冲区
- 13. C++中的套接字协议缓冲区
- 14. 如何将字节[]数组转换为字符串缓冲区
- 15. 字节缓冲区为String在Java中
- 16. TensorFlow输入数据协议缓冲区(tf.train.Example)字符串类型为Feature的TypeError
- 17. 协议缓冲区:无固定大小缓冲区的符号?
- 18. 缓冲区与字符串速度:为什么字符串更快?
- 19. C++套接字256字节缓冲区
- 20. Android和协议缓冲区
- 21. 谷歌协议缓冲区 -
- 22. 协议缓冲区挑战
- 23. JPA协议缓冲区
- 24. 协议缓冲区记录
- 25. 协议缓冲区扩展
- 26. gson vs协议缓冲区
- 27. 协议缓冲区 - @ModelAttribute
- 28. Delphi协议缓冲区?
- 29. 协议缓冲区文件?
- 30. 协议缓冲区错误
你所说的“字符串变量”是什么意思?这是'char *'吗?是C,Java还是其他? – 2012-07-13 09:21:06
@Marcelo我猜他的意思是'字符串'从''...... –
2012-07-13 09:22:24
我不再是一个C++人,但我的印象是'\ 0'在C++字符串中没有特别的意义* *除非你使用专门处理'\ 0'的方法。所以...只是不使用这些方法? – 2012-07-13 09:23:30