编码 - 设置 win10 下 cmd 编码格式

  1. 概述

    1. cmd 编码格式修改
    2. 仅仅是个 尝试, 不建议 直接修改
  2. 背景

    1. 之前尝试过修改 gitbash(mingw) 的 Character Set
    2. 这次尝试修改一下 cmd 的编码格式
  3. 准备

    1. os
      1. win10.1903

1. 查看 当前编码

  1. 概述

    1. 查看当前 cmd 窗口的默认编码
    2. 因为我没有修改过, 所以这个应该也是 win10 下 cmd 的默认编码
  2. 步骤

1. 打开 cmd

2. 查看当前编码

  1. 命令

    # 大写也行, 搞不懂
    > chcp
    活动代码页: 936
    
  2. 结果

    1. 936

      1. 什么鬼
    2. 常用编码

      1. GBK
        1. 936
      2. UTF-8
        1. 65001

2. 修改 当前窗口 编码格式

  1. 概述

    1. 修改 当前cmd 窗口的编码
  2. 步骤

1. 打开 cmd

2. 修改当前编码

  1. 命令

    > chcp 65001
    # 窗口重启
    # 重启后 第一行如下
    Active code page: 65001
    
  2. 结果

    1. 窗口重启

    2. 第一行有提示编码改变

    3. 输入 chcp 查询, 结果是 Active code page: 65001

      1. 居然都不用中文了
    4. 尝试命令

      > dir
      # 结果
      # 1. 内容正常显示
      
    5. 惊了, 字体都变了

      1. 字体变换
        1. gbk 的时候, 默认是 宋体
        2. 切换到 utf-8 的时候, 会换成 Lucida Console
      2. 为什么 字体会改变 呢?
        1. 因为 宋体 无法完全支持 utf-8 的所有符号
          1. 不换的话, 可能会出现乱码
        2. 所以说, 换了个字体, 避免尴尬
  3. 问题: 修改只能管一个窗口

    1. 问题
      1. 我开个 别的 cmd 窗口, 编码又 变回去gbk 了
      2. 有没有办法

3. 修改 所有窗口

  1. 概述

    1. 尝试修改 所有窗口 的编码
  2. 步骤

1. 注册表编辑器

2. 找到 cmd 对应的 项

  1. 路径

    计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
    

3. 添加 配置

  1. 右键单击 Command Processor

    1. 弹出菜单
    2. 选择 新建 > 字符串值
  2. 新建项

    1. 名称

      1. autorun
    2. 内容

      chcp 65001
      
  3. 验证

    1. 重新打开 cmd
      1. 打开成功
      2. 第一行提示 65001

ps

  1. ref

    1. windows cmd命令行如何恢复默认代码页936
      1. 简单介绍了 常用编码 的意义
    2. 如何修改cmd控制台默认编码为utf-8
      1. 这个是 win10 的
      2. win7 版本的对我不适用, 我也没法验证, 所以就不贴出来了
  2. 后续

    1. 建议保持默认
      1. win 环境下, java 会带有这么个 jvm 属性
        1. sun.jnu.encoding = GBK
        2. 如果将 cmd 改成 utf-8, 并且不处理这个的话, 会导致 java 提示中的中文信息乱码, 比如 jhat
        3. 而且其他信息是否会出现问题, 这个还不得而知
    2. 其实我更想知道 编码显示 的原理
      1. 以及一些问题出现的原因
      2. 顺带还有 解决方案...
    3. 最初希望理解的, 是 网络传输 中, unicode 的相关内容
      1. 现在怎么感觉 越走越远 了...
posted @ 2020-02-27 00:54  轩辕拾銉  阅读(4121)  评论(0编辑  收藏  举报