【发布时间】:2013-05-19 10:54:25
【问题描述】:
我正在将图像从 python 后端传输到 c++ 后端。我选择了 Google protobuf,结构简单如下:
message data {
optional string image = 1;
}
然后我使用 Python 读取图像并将其放入图像字段中:
data = server_pb2.data()
data.image = (open(image_fn).read())
但 protobuf 抱怨以下消息:
值错误:[十六进制数据] 的类型为 str,但不是 7 位 ASCII 编码。非 ASCII 字符串在添加前必须转换为 unicode 对象。
我尝试了几种方法使数据成为 unicode,但都没有成功。
也许有人以前遇到过这个问题?或者有没有更好的方法来传输图像数据?
谢谢!
【问题讨论】:
-
您不会将二进制“编码”为 Unicode - 即向后使用编码器并且未定义结果。她tiny.cc/io - 你应该(就像这里的答案一样)直接存储二进制文件
-
我试图弄清楚如何将图像读入
bytes字段并忘记我需要.read()。谢谢!
标签: python unicode protocol-buffers