4
_f = open("c:/go-next.png", "rb")
data = _f.read()
_f.close()
data.encode("utf-8")

# Error: UnicodeDecodeError: file <maya console> line 1: ascii # 

如您所见,我打开一个图像文件,数据是类型。但我必须将其转换为 utf-8。也许二进制数据有一些额外的字符(或没有),它与转换冲突。有什么办法可以解决吗?

4

5 回答 5

7

您始终可以将 a 映射strunicode使用latin-1编解码器。一旦你有了一个unicode,你总是可以将它编码为utf-8

data.decode('latin-1').encode("utf-8")
于 2013-02-07T04:06:38.067 回答
3

文本编码仅适用于文本。不要尝试在二进制数据上使用它们。

于 2013-02-07T03:43:19.847 回答
2

您想要完成的工作可能可以通过 base64 编码来实现。

 import base64
 encoded = base64.b64encode(image_binary_data)
于 2013-02-07T04:17:26.283 回答
0

编码意味着将字符串转换为可存储的字节。
解码意味着将字节转换为可读的字符串。

您的data代码中的 已经编码。

于 2013-02-07T04:19:13.533 回答
0

图像无法转换为 utf8 中的章程之类的内容。

于 2017-07-27T12:18:11.603 回答