最近更新于 2023-08-08 15:15

对于经常在 Linux 下写代码的人来说,一般而言字符编码都是设置的 UTF-8,应该说很多代码编辑器默认的字符编码就是 UTF-8。但是当把代码文件移到 Windows 下编译运行可能就会出现问题,中文显示乱码。这是因为 Windows 的 CMD 和 PowerShell 默认的字符编码是 GB2312,要解决这个问题,有多种方式:

(1) 修改系统字符编码设置

勾选 UTF-8 确认就行,但是并不建议。修改这个是两头难,或许代码能正常编译运行了,但是不排除有安装的软件内部是 GB2312,那到时候那些软件可能就无法正常显示文字了。

(2) 将代码重新保存,设置字符编码为 GB2312

但是文件少还好说,像一些项目大一点,文件就不少,这样一个一个改很累。

(3) 临时修改控制台字符编码

chcp.com 65001

每新打开一个都是默认状态,要手动执行修改

(4) 添加命令每次启动 cmd/PowerShell 自动执行修改字符编码

① 设置 cmd 自动执行

打开开始菜单搜索注册表

打开路径: 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

右键新建字符串值,命名为 autorun

然后双击设置值 chcp.com 65001

打开一个 cmd 窗口,可以看到自动执行了字符编码切换

② 设置 PowerShell 自动切换字符集

打开 PowerShell 输入 $PROFILE 回车,可以看到 PowerShell 的配置文件路径,PowerShell 在启动的时候会自动执行。这个路径可能不存在,中间缺少的要自己创建。

创建好配置文件后向里面写入

chcp 65001

另外 Windows 默认是禁止 PowerShell 脚本执行的,修改执行策略参考:https://blog.iyatt.com/?p=10735

最后就可以实现打开 PowerShell 就是 UTF-8