python - 将二进制数据转换为utf-8

时间:2013-02-07 03:41:21

标签: python utf-8

_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。 也许二进制数据有一些额外的char(或没有),它与转换冲突。有什么办法可以解决吗?

5 个答案:

答案 0 :(得分:5)

您始终可以使用str编解码器将unicode映射到latin-1。获得unicode后,您始终可以在utf-8中对其进行编码:

data.decode('latin-1').encode("utf-8")

答案 1 :(得分:3)

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

答案 2 :(得分:1)

你想要实现的目标可能是通过base64编码实现的。

 import base64
 encoded = base64.b64encode(image_binary_data)

答案 3 :(得分:0)

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

代码中的data已经过编码。

答案 4 :(得分:0)

图片无法转换为utf8中的章程。