按照我上一篇的文章设置好 ST3 的编译系统后,在 ST3 内编写脚本并运行时已不会因为中文字符编码问题报错。这次来介绍一个通过注册表永久更改 cmd 默认编码的方法。
首先打开注册表。定位到
\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe
并在右侧找到 “CodePage” 键(若没有,则新建一个,类型为DWORD32),双击打开选择十进制显示,并改为65001,确定。
之后再随意新打开一个 cmd 窗口,通过属性窗口可以看到默认编码格式已经是 utf-8 。
此时,通过 cmd 命令行打开并运行 *.py 已不会再因为字符编码问题报错。
但是,随后我有发现了一个新问题,当你直接双击打开运行 *.py 文件时,打开的窗口是 python.exe , 而非 cmd ,其默认编码仍为 gbk ,遇到一些中文字符程序依然报错。
试了网上的一些方法。如在脚本开头添加:
import os
sys.setdefaultencoding("utf-8")
但 python3 并不支持以上代码。再如:
import os
os.system("chcp 65001")
由于此时窗口是 python.exe 并不是 cmd ,以上代码也无效。
为了修改这个窗口的默认编码格式,我们要再回到注册表,和刚才修改 cmd 的方法类似,在同级路径下找到
\HKEY_CURRENT_USER\Console\C:_Python35_python.exe
(python版本不同自行判断)
同上面的方法,可发现右侧也有一个 “CodePage” 键(若没有,则新建一个,类型为DWORD32),双击打开选择十进制显示,并改为65001,确定。
搞定!
另外,还发现命令行界面下字体改为“新宋体”能显示韩语,其余字体均无法正常显示。(字体可直接根据窗口的默认值来修改)
领取专属 10元无门槛券
私享最新 技术干货