最近更新于 2024-05-05 14:19
对于经常在 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