小编Kal*_*zvx的帖子

重定向输出时Windows编码已更改

嗨,我有以下python文件'test.py':

import sys
print(sys.stdout.encoding)
sys.stdout.reconfigure(encoding='utf-8') 
print(sys.stdout.encoding)
Run Code Online (Sandbox Code Playgroud)

当我跑步时

py test.py
Run Code Online (Sandbox Code Playgroud)

我得到:

utf-8
utf-8
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时

py test.py > test.txt
Run Code Online (Sandbox Code Playgroud)

要么

py test.py | Out-File -FilePath test.txt -Encoding ASCII
Run Code Online (Sandbox Code Playgroud)

我从test.txt获得:

cp1252
utf-8
Run Code Online (Sandbox Code Playgroud)

更新:当我运行以下python代码时:

import sys, locale
print(sys.getdefaultencoding())
print(locale.getpreferredencoding())
Run Code Online (Sandbox Code Playgroud)

我得到:

utf-8
cp1252
Run Code Online (Sandbox Code Playgroud)

问题:
我可以知道为什么会这样吗,应该怎么做,以便重定向时默认编码为utf-8?
谢谢

python windows

5
推荐指数
1
解决办法
4940
查看次数

标签 统计

python ×1

windows ×1