我正在尝试理解Unicode和所有相关的东西。我制作了一个utf-8.txt文件,显然是用utf-8编码的。它有“Hello world!”内。 继承人我的工作:
f = open('utf8.txt', mode = 'r', encoding = 'utf8')
f.read()
我得到的是:'\ ufeffHello world!'前缀来自哪里?
另一次尝试:
f = open('utf8.txt', 'rb')
byte = f.read()
打印字节给出:b'\ xef \ xbb \ xbfHello world!'我假设前缀以十六进制形式出现。
byte.decode('utf8')
上面的代码再次给了我:'\ ufeffHello world!'
我做错了什么?如何从utf-8文件中检索文本到python?
感谢您的反馈!
答案 0 :(得分:6)
您的utf-8.txt编码为utf-8-bom,与utf-8不同。对于utf-8-bom文件,'\ uFEFF'被写入文件的开头。不要使用Dim sample = "123- ABCDEFG"
newTxt = sample.Replace(" "c, "").Replace("-"c, "")
,请尝试encoding = 'utf8'
encoding = 'utf-8-sig'