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

时间:2018-09-18 10:05:31

标签: c++ character-encoding protocol-buffers

如果C ++程序收到带有std::string表示的Protocol Buffers string field的协议缓冲区消息,那么该字段中的文本编码是什么?是UTF-8吗?

1 个答案:

答案 0 :(得分:3)

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

请参见Language Guide

  

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

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

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