unicode头包含在第一行文件中

时间:2012-06-14 22:22:24

标签: python python-3.x

我正在从文件中打印第一行:

with open(path,"r",encoding='utf8') as f:
    for i, l in enumerate(f.readlines()):
        print(bytes(l.rstrip(), encoding='utf8'))

我希望输出b'1'而不是我得到:

b'\xef\xbb\xbf1'

这里有什么问题?

我在Windows上,我使用记事本++保存了我的文件。

3 个答案:

答案 0 :(得分:6)

要正确解析BOM,请使用utf-8-sig

with open(path,"r",encoding='utf-8-sig') as f:

答案 1 :(得分:2)

你看到Notepad ++放在文件开头的Byte Order Mark (BOM)标记为UTF-8编码。

答案 2 :(得分:1)

BOM的UTF-8表示是字节序列0xEF,0xBB,0xBF。将文本解释为ISO-8859-1或CP1252的文本编辑器或Web浏览器将为此显示字符.


不需要UTF-8中的BOM。您可以配置Notepad ++。