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

Hyu*_*Kim 4 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 # 
Run Code Online (Sandbox Code Playgroud)

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

unu*_*tbu 5

您始终str可以unicode使用latin-1编解码器映射到.一旦你有了unicode,你总是可以编码utf-8:

data.decode('latin-1').encode("utf-8")
Run Code Online (Sandbox Code Playgroud)

  • 没有意义?有人曾经问过一台超级计算机,"生命的意义是什么?" 我很确定它回答了,''42'.解码('latin1').编码('utf-8')`.:-) (5认同)

Ign*_*ams 3

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