我在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 回答
PyCharm为
LC_CTYPE
环境变量传递一个空值:请参阅:PyCharm is changing the default encoding in my Django app
我已经在python-IDLE上测试了,而不是在pycharm上,我得到了与你相同的响应 . 文件的编码是UTF-8,而用于打开文件的编码方法是ASCII . 我找到了2个避免这种情况的解决方案:
更改用于打开文件的编码方法:
codec
模块包含一些操作来执行此操作 . 为方便起见,您可以直接在代码中传递编码参数来声明编码方法 .更改文件的编码方法:
有许多方法可以更改文件的编码方法 . 如果您使用的是Windows操作系统,那将更方便 . 使用记事本打开
test.txt
文件,然后单击 File > Save as... . 在 Save as 界面中,将文件的编码(位于底部位置)从 UTF-8 更改为 ANSI ,最后将 Save 和 replace 更改为原始文件 . 执行此操作后,尝试在pycharm或其他IDE中运行代码,您将获得正确的结果 . 希望能帮助到你 .