【问题标题】:Reading unicode files in python [duplicate]在python中读取unicode文件[重复]
【发布时间】:2018-03-25 16:22:51
【问题描述】:

我有一个包含 unicode "û" 的文件。然而,如以下测试用例所示,这不能正确读取:

print("û")
with open(r"testfile.txt") as f:
    for line in f:
        print(line)

哪些输出:

û
û

IDE 可以正确显示字符 - 但是从读取文件中会显示另一个字符。 如果我在调试器中执行它,我会看到f 具有“编码”cp1252。不是 unicode。

那么我该如何“解决”这个问题呢?

在记事本++ 中打开文件告诉我该文件确实是UTF-8。如果我手动将文件更改为 windows-codepage 1252,它似乎可以工作。但这并不是我真正想要的。

【问题讨论】:

标签: python file unicode


【解决方案1】:

可以在打开文件时指定编码:

with open(r"testfile.txt", encoding='utf-8') as f:

【讨论】:

  • TypeError: 'encoding' 是此函数的无效关键字参数。请问你用的是什么版本的Python?这是 Python 3 的东西吗?
  • 是的,我想是的。
  • 好的,谢谢。我想我必须使用编解码器库。
  • :D Python3 在呼唤你……
  • 大声笑。我维护的较新站点使用它。只是不是我现在正在研究的那个。最终,这一天会到来。
【解决方案2】:

在打开文件时,您需要使用编码参数作为“utf-8”。 看起来像下面的 with open()。 你可能想了解更多here

  encoding='utf-8'

【讨论】:

    猜你喜欢
    • 2013-06-30
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多