win11终端(cmd/powershell)编码问题

描述:

powershell/cmd默认代码页为936(取决于操作系统语言),通过chcp命令可以查看当前代码页和修改代码页(修改当前代码页作用性质为一次性)

代码页的选择可能导致多种未知错误包括但不限于(以下仅我本人遇见):

使用python2版本时,对cp65001兼容不佳导致
(对936兼容,可使用$env:PYTHONIOENCODING = “utf-8″强制修改编码)

*(暂时无图)程序运行输出中文时乱码

*(暂时无图)老旧应用不兼容UTF-8导致全屏乱码或部分乱码

一般快捷解决:

powershell:

在powershell的启动项中添加命令,在每次启动时自动运行:

打开终端输入:

echo $PROFILE

获取shell的配置文件路径,如果没有该文件则输入以下命令进行创建:

New-Item -Type File -Path $PROFILE -Force

然后使用文本编辑器打开,添加上(二选一即可):

#方法一:
$OutputEncoding = [System.Text.Encoding]::UTF8
[console]::OutputEncoding = [System.Text.Encoding]::UTF8
#方法二:
chcp *****(按照自己需求改写)

两者区别在于作用域不同,按需设置即可,前者的兼容性更强,但仅可在powershell中生效,而后者仅对当前控制台窗口有效(在cmd单独输入同样有效)

cmd:

与powershell类似


下一篇