编码 - 设置 win10 下 cmd 编码格式
-
概述
- cmd 编码格式修改
- 仅仅是个 尝试, 不建议 直接修改
-
背景
- 之前尝试过修改 gitbash(mingw) 的 Character Set
- 这次尝试修改一下 cmd 的编码格式
-
准备
- os
- win10.1903
- os
1. 查看 当前编码
-
概述
- 查看当前 cmd 窗口的默认编码
- 因为我没有修改过, 所以这个应该也是 win10 下 cmd 的默认编码
-
步骤
1. 打开 cmd
- 略
2. 查看当前编码
-
命令
# 大写也行, 搞不懂 > chcp 活动代码页: 936
-
结果
-
936
- 什么鬼
-
常用编码
- GBK
- 936
- UTF-8
- 65001
- GBK
-
2. 修改 当前窗口 编码格式
-
概述
- 修改 当前cmd 窗口的编码
-
步骤
1. 打开 cmd
- 略
2. 修改当前编码
-
命令
> chcp 65001 # 窗口重启 # 重启后 第一行如下 Active code page: 65001
-
结果
-
窗口重启
-
第一行有提示编码改变
-
输入 chcp 查询, 结果是
Active code page: 65001
- 居然都不用中文了
-
尝试命令
> dir # 结果 # 1. 内容正常显示
-
惊了, 字体都变了
- 字体变换
- gbk 的时候, 默认是 宋体
- 切换到 utf-8 的时候, 会换成 Lucida Console
- 为什么 字体会改变 呢?
- 因为 宋体 无法完全支持 utf-8 的所有符号
- 不换的话, 可能会出现乱码
- 所以说, 换了个字体, 避免尴尬
- 因为 宋体 无法完全支持 utf-8 的所有符号
- 字体变换
-
-
问题: 修改只能管一个窗口
- 问题
- 我开个 别的 cmd 窗口, 编码又 变回去gbk 了
- 有没有办法
- 问题
3. 修改 所有窗口
-
概述
- 尝试修改 所有窗口 的编码
-
步骤
1. 注册表编辑器
- 略
2. 找到 cmd 对应的 项
-
路径
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
3. 添加 配置
-
右键单击 Command Processor
- 弹出菜单
- 选择
新建 > 字符串值
-
新建项
-
名称
- autorun
-
内容
chcp 65001
-
-
验证
- 重新打开 cmd
- 打开成功
- 第一行提示 65001
- 重新打开 cmd
ps
-
ref
- windows cmd命令行如何恢复默认代码页936
- 简单介绍了 常用编码 的意义
- 如何修改cmd控制台默认编码为utf-8
- 这个是 win10 的
- win7 版本的对我不适用, 我也没法验证, 所以就不贴出来了
- windows cmd命令行如何恢复默认代码页936
-
后续
- 建议保持默认
- win 环境下, java 会带有这么个 jvm 属性
- sun.jnu.encoding = GBK
- 如果将 cmd 改成 utf-8, 并且不处理这个的话, 会导致 java 提示中的中文信息乱码, 比如 jhat
- 而且其他信息是否会出现问题, 这个还不得而知
- win 环境下, java 会带有这么个 jvm 属性
- 其实我更想知道 编码显示 的原理
- 以及一些问题出现的原因
- 顺带还有 解决方案...
- 最初希望理解的, 是 网络传输 中, unicode 的相关内容
- 现在怎么感觉 越走越远 了...
- 建议保持默认
尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出