Protocol Buffers 字符串字段的文本编码

Rae*_*ald 7 c++ character-encoding protocol-buffers

如果一个 C++ 程序收到一个 Protocol Buffers 消息,它有一个Protocol Buffersstring字段,用 a 表示std::string,那么该字段中文本的编码是什么?是UTF-8吗?

jpa*_*jpa 8

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

请参阅语言指南

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

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

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