【发布时间】:2015-06-20 15:19:03
【问题描述】:
我使用this question中提到的脚本来检查编码:
import sys, locale, os
print(sys.stdout.encoding)
print(sys.stdout.isatty())
print(locale.getpreferredencoding())
print(sys.getfilesystemencoding())
print(os.environ["PYTHONIOENCODING"])
print(chr(246), chr(9786), chr(9787))
我得到(python 3.4,windows 8.1):
windows-1252
False
cp1252
mbcs
windows-1252
ö Traceback (most recent call last):
File "C:/Users/.../UTF8-comprovacio.py", line 8, in <module>
print(chr(246), chr(9786), chr(9787))
File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u263a' in position 0: character maps to <undefined>
我正在尝试更改 Windows 8.1 编码(例如,我添加了一个名为“PYTHONIOENCODING”的环境变量 vith utf8 值)但结果始终相同。如何在 Windows 8.1 中更改 PYTHONIOENCODING 的编码和值? (其实我还有另一台电脑,也是Windows 8.1,显示正确的值,utf-8,但我不知道为什么)
【问题讨论】:
-
基本健全性检查:您已经尝试过:import sys reload(sys) sys.setdefaultencoding('utf-8')
-
谢谢,但据我所知,reload(sys) 在 python 3.4 中不起作用。
-
我不确定是否需要重新加载,但以防万一:docs.python.org/3/library/imp.html#imp.reload
标签: python-3.x encoding utf-8 windows-8.1