我找不到Python 3的重复版本,该版本3处理的编码与Python 2不同。因此,这就是答案:而不是使用默认编码(是'utf-8'
)打开文件,而是使用'utf-8-sig'
,它期望并去除UTF- 8字节顺序标记,显示为
。
也就是说,代替
data = open('info.txt')
做
data = open('info.txt', encoding='utf-8-sig')
请注意,如果您使用的是Python 2,则应该看到例如Python,将输出编码为UTF-8并将带有BOM的UTF-8转换为在Python中没有BOM的UTF-8。您需要使用codecs
或进行一些恶作剧,str.decode
才能在Python 2中正常工作。但是在Python 3中,您要做的就是encoding=
在打开文件时设置参数。