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

5 投票
5 回答
19353 浏览
提问于 2025-04-17 15:03
_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格式。可能这个二进制数据里有一些额外的字符(或者没有),这就导致转换的时候出现了问题。有没有什么办法可以解决这个问题呢?

5 个回答

3

你想要实现的目标可能可以通过将其进行base64编码来完成。

 import base64
 encoded = base64.b64encode(image_binary_data)
7

你可以通过使用 latin-1 编码把一个 str(字符串)转换成 unicode(统一编码)。一旦你得到了 unicode,你就可以把它再编码成 utf-8 格式:

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

文本编码只适用于文本内容。不要试图把它们用在二进制数据上。

撰写回答