【问题标题】:encoding error in pycharm for python3python3的pycharm中的编码错误
【发布时间】:2018-01-25 02:45:42
【问题描述】:

我在pycharm中使用的是python3,但是pycharm似乎没有将utf8作为默认编码方式。

例如,我尝试在不设置编码参数的情况下打开并打印一行

with open('/Users/test.txt','r') as file:
    print(file.readline())

然后我得到了

UnicodeDecodeError:“ascii”编解码器无法解码位置 0 的字节 0xe8:序数不在范围内 (128)

虽然我可以打开文件而无需在 iterm2 和 Jupyter 笔记本中设置“编码”参数。所以我猜是因为pycharm中的编码设置,我已经尝试了pycharm中的每个编码设置,它也不起作用。

【问题讨论】:

    标签: python python-3.x encoding pycharm


    【解决方案1】:

    PyCharm 为 LC_CTYPE 环境变量传递一个空白值:

    请看:PyCharm is changing the default encoding in my Django app

    【讨论】:

      【解决方案2】:

      我在 python-IDLE 上进行了测试,而不是在 pycharm 上,我得到了和你一样的响应。文件的编码是UTF-8,而打开文件的编码方式是ASCII。我找到了 2 个解决方案来避免这种情况:

      更改打开文件的编码方式:

      codec 模块包含一些执行此操作的操作。为方便起见,您可以在代码中直接传递编码参数来声明编码方法。

      with open('/Users/test.txt','r',encoding="utf-8") as file:
          print(file.readline())
      

      改变文件的编码方式:

      有很多方法可以改变文件的编码方式。如果您使用的是 Windows 操作系统,那将更加方便。 使用记事本打开test.txt 文件,然后单击文件 > 另存为...。在另存为界面,将文件的编码(在底部)从UTF-8改为ANSI,最后保存替换 原始文件。完成此操作后,尝试在 pycharm 或其他 IDE 中运行代码,您将得到正确的结果。希望对您有所帮助。

      【讨论】:

      • 感谢您回答这个问题,我可以通过显式设置 encoding=utf-8 参数open,但我只是对为什么默认设置感到困惑pycharm 中的设置不是“utf-8”。更重要的是,当我尝试将日志信息写入文件时,它也会引发同样的错误,我必须使用 logging.FileHandler 手动设置编码方法。
      • 反正这个问题可能比较小,遇到同样问题的人可能不多,只需要我每次显式设置encoding参数即可。
      • 嗯,我的电脑上pycharm默认的文件编码是UTF-8。也许您可以将其重置为 UTF-8 并再次尝试该代码?
      猜你喜欢
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 2015-11-19
      • 2020-09-05
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 2017-10-28
      相关资源
      最近更新 更多