美文网首页
windows 控制台 cmd/PowerShell 中文显示乱

windows 控制台 cmd/PowerShell 中文显示乱

作者: AndyChen | 来源:发表于2019-11-14 18:52 被阅读0次

    cmd 控制台默认编码,一般是简体中文默认的GBK,如果出现中文乱码,一般改为UTF-8可解决。

    打开 cmd 控制台窗口

    win(窗口键,在Ctrl与Alt之间)+R,输入 cmd,回车,这样操作会打开 cmd 控制台窗口。

    检查当前的编码

    C:\Users\AndyChen>chcp
    Active code page: 936
    

    显示当家的编码格式为 936。

    常用的编码及对应的码值(10进制)

    十进制码值 对应编码名称
    950 繁体中文
    65001 Unicode (UTF-8)
    936 简体中文默认的GBK
    437 MS-DOS 美国英语

    测试中文显示

    将以下代码保存为一个批处理文件,如 test.bat,或者 test.cmd,双击运行

    @echo off
    echo test chinese character view  测试中文字符显示
    pause
    

    我的测试如下:

    test chinese character view  娴嬭瘯涓枃瀛楃鏄剧ず
    Press any key to continue . . .
    

    当为936时,中文显示乱码。

    修改控制台CMD编码格式为UTF-8

    临时修改为 UTF-8

    执行 chcp 65001

    C:\Users\AndyChen>chcp 65001
    Active code page: 65001
    

    这种方式在关闭 cmd 之后会自动失效,下次再打开,还是会变回默认的 936。

    永久修改方法一

    1. win+R 或者点击开始菜单,找到运行,在运行输入框里面输入regedit,回车,会打开注册码编辑窗口,在地址栏输入:Computer\HKEY_CURRENT_USER\Console\%SystemRoot%_System32_cmd.exe,回车。
      image
    2. 双击 CodePage 然后先择十进制,改为65001。
      image
    3. 同理,可以修改 PowerShell 的默认编码,位置:Computer\HKEY_CURRENT_USER\Console\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe,如果没有 CodePage,则在该项下新建一个 DWORD(32位值),命名为CodePage,值设为65001

    重启 cmd/PowerShell 后生效。

    永久修改方法二

    创建文本文件 characterSet.reg,内容如下:

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\Console\%SystemRoot%_SysWOW64_WindowsPowerShell_v1.0_powershell.exe]
    "CodePage"=dword:0000fde9
    
    [HKEY_CURRENT_USER\Console\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe]
    "CodePage"=dword:0000fde9
    
    [HKEY_CURRENT_USER\Console\%SystemRoot%_System32_cmd.exe]
    "CodePage"=dword:0000fde9
    

    双击运行。

    再次测试中文显示

    运行之前的测试脚本,显示如下:

    test chinese character view  测试中文字符显示
    Press any key to continue . . .
    

    能够正常显示,说明设置成功。

    小技巧

    在某一个文件夹/目录下,按住 Shift 点鼠标右建,可以打开 PowerShell。


    image

    附:所有编码对照表

    十进制码值 对应编码名称
    代码页 国家(地区)或语言
    437 美国
    708 阿拉伯文(ASMO 708)
    720 阿拉伯文(DOS)
    850 多语言(拉丁文 I)
    852 中欧(DOS) - 斯拉夫语(拉丁文 II)
    855 西里尔文(俄语)
    857 土耳其语
    860 葡萄牙语
    861 冰岛语
    862 希伯来文(DOS)
    863 加拿大 - 法语
    865 日耳曼语
    866 俄语 - 西里尔文(DOS)
    869 现代希腊语
    874 泰文(Windows)
    932 日文(Shift-JIS)
    936 中国 - 简体中文(GB2312)
    949 韩文
    950 繁体中文(Big5)
    1200 Unicode
    1201 Unicode (Big-Endian)
    1250 中欧(Windows)
    1251 西里尔文(Windows)
    1252 西欧(Windows)
    1253 希腊文(Windows)
    1254 土耳其文(Windows)
    1255 希伯来文(Windows)
    1256 阿拉伯文(Windows)
    1257 波罗的海文(Windows)
    1258 越南文(Windows)
    20866 西里尔文(KOI8-R)
    21866 西里尔文(KOI8-U)
    28592 中欧(ISO)
    28593 拉丁文 3 (ISO)
    28594 波罗的海文(ISO)
    28595 西里尔文(ISO)
    28596 阿拉伯文(ISO)
    28597 希腊文(ISO)
    28598 希伯来文(ISO-Visual)
    38598 希伯来文(ISO-Logical)
    50000 用户定义的
    50001 自动选择
    50220 日文(JIS)
    50221 日文(JIS-允许一个字节的片假名)
    50222 日文(JIS-允许一个字节的片假名 - SO/SI)
    50225 韩文(ISO)
    50932 日文(自动选择)
    50949 韩文(自动选择)
    51932 日文(EUC)
    51949 韩文(EUC)
    52936 简体中文(HZ)
    65000 Unicode (UTF-7)
    65001 Unicode (UTF-8)

    关于作者

    相关文章

      网友评论

          本文标题:windows 控制台 cmd/PowerShell 中文显示乱

          本文链接:https://www.haomeiwen.com/subject/afcdictx.html