协议缓冲区字符串字段的文本编码

Text encoding of Protocol Buffers string fields

提问人:Raedwald 提问时间:9/18/2018 最后编辑:Raedwald 更新时间:9/19/2018 访问量:8052

问:

如果 C++ 程序收到具有协议缓冲区字符串字段(由 表示)的协议缓冲区消息,则该字段中的文本编码是什么?是UTF-8吗?std::string

C++ 字符编码 协议缓冲区

评论


答:

9赞 jpa 9/19/2018 #1

Protobuf 字符串始终是有效的字符串。UTF-8

请参阅语言指南

字符串必须始终包含 UTF-8 编码或 7 位 ASCII 文本。

(ASCII 也始终是有效的 UTF-8。

并非所有 protobuf 实现都强制执行此操作,但如果我没记错的话,至少 Python 库拒绝解码非 unicode 字符串。