python.exe 窗口的编码设置

按照我上一篇的文章设置好 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,确定。

搞定!

另外,还发现命令行界面下字体改为“新宋体”能显示韩语,其余字体均无法正常显示。(字体可直接根据窗口的默认值来修改)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180413G1589H00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券