二进制>UTF8>字符串

2024-09-23 16:18:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着理解Unicode和所有相关的东西。我做了一个utf-8.txt文件,显然是用utf-8编码的。上面写着“你好,世界!”里面。 我要做的是:

f = open('utf8.txt', mode = 'r', encoding = 'utf8')
f.read()

我得到的是:'\ufeffHello world!'前缀是从哪里来的?在

再来一次:

^{pr2}$

打印字节给出:b'\xef\xbb\xbfHello world!'我想前缀是十六进制的。在

byte.decode('utf8')

上面的代码又给了我:'\ufeffHello world!'在

我做错什么了?如何从utf-8文件中检索到python的文本?在

感谢您的反馈!在


Tags: 文件txt编码worldread字节modeunicode
1条回答
网友
1楼 · 发布于 2024-09-23 16:18:14

您的utf-8.txt编码为utf-8-bom,这与utf-8不同。对于utf-8-bom文件,“\uFEFF”将写入文件的开头。不要使用encoding = 'utf8',请尝试encoding = 'utf-8-sig'

f = open('utf8.txt', mode = 'r', encoding = 'utf-8-sig')
print (f.read())

相关问题 更多 >