熊天琪游戏论坛 - 玩出名堂

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

免费自助广告购买,禁止站外链接:一次买3天

查看: 81|回复: 1

[技术交流] windows 控制台 cmd/PowerShell 中文显示乱码,解决方法

[复制链接]
熊天琪 发表于 2019-11-20 02:57:32 | 显示全部楼层 |阅读模式
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。

永久修改方法一
win+R 或者点击开始菜单,找到运行,在运行输入框里面输入regedit,回车,会打开注册码编辑窗口,在地址栏输入:Computer\HKEY_CURRENT_USER\Console\%SystemRoot%_System32_cmd.exe,回车。

双击 CodePage 然后先择十进制,改为65001。

同理,可以修改 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。


附:所有编码对照表
十进制码值        对应编码名称
代码页        国家(地区)或语言
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)
————————————————
版权声明:本文为CSDN博主「uncleAndyChen」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/runAndRun/article/details/103072938

注册表导入失败 只能导入二进位注册文件

检查两步,问题基本解决:

1.reg文件的格式;

2.reg文件一定是另存为ansi编码格式;


我用notepad++将编码改过来保存后解决的


2892648455 发表于 2019-11-28 17:45:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|熊天琪 ( 鄂ICP备14006674号,鄂公网安备42020502000003号 )

GMT+8, 2019-12-13 03:35 , Processed in 0.078851 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表