protobuf 的 c++里的 SerializeToString 用的是 UTF-8 字符集吗?

2020-03-26 15:48:00 +08:00
 amiwrong123

现在我在 c++里把 proto 用 MessageLite 的 SerializeToString 把 proto 对象变成字符串, 传给 java 层,然后 java 获得了一个 String,然后我需要调用 String.getBytes()函数来获得字节流。

我现在认为我在 java 层里,应该调用 getBytes("UTF-8"),因为我觉得 c++的 SerializeToString 也是用的 utf-8 字符集,但是我在 SerializeToString 的注释并没有看到有关字符集的解释。

2862 次点击
所在节点    程序员
2 条回复
Monad
2020-03-26 16:55:04 +08:00
Protobuf string 类型##约定##只传递 UTF-8 编码的字节, 非 UTF-8 用 bytes.
123444a
2020-03-26 18:30:23 +08:00
我记得非 UTF-8 的内容一调用就会报错,c++,其他语言不记得

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/656414

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX