_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。也许二进制数据有一些额外的字符(或没有),它与转换冲突。有什么办法可以解决吗?
您始终可以将 a 映射str
到unicode
使用latin-1
编解码器。一旦你有了一个unicode
,你总是可以将它编码为utf-8
:
data.decode('latin-1').encode("utf-8")
文本编码仅适用于文本。不要尝试在二进制数据上使用它们。
您想要完成的工作可能可以通过 base64 编码来实现。
import base64
encoded = base64.b64encode(image_binary_data)
编码意味着将字符串转换为可存储的字节。
解码意味着将字节转换为可读的字符串。
您的data
代码中的 已经编码。
图像无法转换为 utf8 中的章程之类的内容。