【问题标题】:Weird characters while reading file content读取文件内容时出现奇怪的字符
【发布时间】:2014-07-18 01:27:00
【问题描述】:

我不确定出了什么问题:

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

输出:

abcd

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

现在它可以在 notepad++ 上使用 UTF-8 编码而不带 BOM 选项正常工作。但为什么?我的意思是如何将所有发送的文件转换为 UTF-8 以避免奇怪的字符?

【问题讨论】:

  • 微软和他们对 UTF-8 BOM 的热爱..

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


【解决方案1】:

指定encoding 将解决您的问题。

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

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

【讨论】:

  • 作为一个魅力:)。我一到家就在做标记。
【解决方案2】:

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

在您的代码中添加第三个参数,设置其编码。来自:

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

到:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多