pycharm中python3的编码错误

时间:2018-01-25 02:45:43

标签: python python-3.x encoding pycharm

我在pycharm中使用python3,但似乎pycharm不将utf8作为默认编码方法。

例如,我尝试打开而没有设置编码参数并打印一行

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

然后我得到了

  

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

虽然我可以打开文件而不在iterm2和Jupyter笔记本中设置'encoding'参数。所以我想这是由于pycharm中的编码设置,我已经尝试了pycharm中的每个编码设置,它也没有用。

2 个答案:

答案 0 :(得分: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中运行代码,您将获得正确的结果。希望它有所帮助。

答案 1 :(得分:2)

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

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