嗨,我有以下python文件'test.py':
import sys
print(sys.stdout.encoding)
sys.stdout.reconfigure(encoding='utf-8')
print(sys.stdout.encoding)
我跑步时
py test.py
我得到:
utf-8
utf-8
但是当我跑步
py test.py > test.txt
或
py test.py | Out-File -FilePath test.txt -Encoding ASCII
我来自test.txt:
cp1252
utf-8
更新: 当我运行以下python代码时:
import sys, locale
print(sys.getdefaultencoding())
print(locale.getpreferredencoding())
我得到:
utf-8
cp1252
问题:
请问为什么会发生这种情况,我应该怎么做,以便重定向时默认编码为utf-8?
谢谢
答案 0 :(得分:0)
您正在使用Windows。发生这种情况是因为Windows 7控制台不了解UTF-8。因此,当您显示标准输出时,它需要编码为Windows可以显示的内容。
Luciano Ramalho的书Fluent Python很好地解释了这一点。