阅读文件内容时的奇怪字符

时间:2014-05-28 17:24:20

标签: python python-3.x utf-8

我不确定出了什么问题:

for line in open(textfile, 'r'):
    print(line)

输出:

abcd

该文件是使用textpad ++使用Unix EOL和UTF8编码创建的。

现在它可以在记事本++上使用UTF-8编码而无需BOM选项。但为什么?我是说如何将所有发送的文件转换为UTF-8以避免奇怪的字符?

2 个答案:

答案 0 :(得分:8)

指定encoding可以解决您的问题。

for line in open(textfile, 'r', encoding='utf-8-sig'):
    print(line)

utf_8_sig:带BOM签名的UTF-8编解码器

答案 1 :(得分:2)

您必须使用UTF-8在读取文件时设置文件的编码。

在代码中添加第三个参数,设置其enconding。从:

for line in open(textfile, 'r'):
    print(line)

为:

for line in open(textfile, 'r', encoding='utf-8-sig'):
    print (line)