一次永久解决cmd窗口汉字显示乱码

本文介绍如何在CMD和Powershell中正确显示中文的方法,包括临时更改代码页为UTF-8以及通过注册表永久设置。适用于需要在命令行工具中处理中文的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于编译出的程序,在 cmd 和 power shell 运行时都不能正确显示汉字。 
网上查,可以再命令窗口修改: 
1、打开CMD.exe命令行窗口 
2、通过 chcp命令改变代码页,UTF-8的代码页为65001 
chcp 65001 
执行该操作后,代码页就被变成UTF-8了。

在当前窗口的确可以解决问题,但是重新打开的cmd窗口或者power shell 窗口仍然不能正确显示汉字



最终发现,cmd的属性设置可以在注册表中修改,实现一次修改永远有效: 
1. win+R 输入regedit 进入注册表 
2. 找到 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe 如果 该项下已存在CodePage项,则把值改为十进制”65001”;如果不存在,在该项下新建一个 DWORD(32位值),命名为“CodePage”,值设为“65001” 
3. 重启cmd后生效 
4. 对于Power shell修改同样,只需在第2步修改 
%SystemRoot%_system32_WindowsPowerShell_v1.0_powershell.exe 下的项。


附录: 
MS-DOS为以下国家和语言提供字符集: 
  代码页描述 
  1258 越南语 
  1257 波罗的语 
  1256 阿拉伯语 
  1255 希伯来语 
  1254 土耳其语 
  1253 希腊语 
  1252 拉丁 1 字符 (ANSI) 
  1251 西里尔语 
  1250 中欧语言 
  950 繁体中文 
  949 朝鲜语 
  936 简体中文(默认) 
  932 日语 
  874 泰国语 
  850 多语种 (MS-DOS Latin1) 
  437 MS-DOS 美国英语

<think>好的,我需要解决用户提到的CMD汉字显示乱码的问题。首先,我得回忆一下用户提供的引用内容,看看里面提到的解决方案有哪些。根据引用[1]和引用[2],用户已经给出了一些方法,比如修改代码页为UTF-8,调整注册表设置,或者使用reg文件来应用更改。 首先,我需要确认用户的问题具体是在什么情况下出现的乱码。比如,运行jar包时打印日志出现乱码,或者使用curl命令时出现乱码。不同的情况可能需要不同的解决方法,但根据引用中的信息,核心问题都是CMD的编码设置不正确,默认可能是GBK而不是UTF-8。 接下来,我应该整理引用中的解决方案,分步骤说明。用户提到的三个方案分别是:通过CHCP命令临时更改代码页、修改注册表永久设置代码页、以及导入预制的reg文件。这些方法各有优缺点,比如CHCP是临时的,关闭CMD后失效,而修改注册表则是永久性的。此外,还可能涉及到字体设置,比如确保CMD使用的字体支持中文显示,比如Consolas或宋体。 需要注意的是,用户可能对修改注册表不太熟悉,所以步骤要详细,并提醒谨慎操作,备份注册表。同时,还要检查系统区域设置中的Unicode UTF-8支持是否启用,这在较新的Windows版本中可能有影响。 另外,引用中提到的解决方案来源链接需要正确标注,确保引用标识对应正确。例如,引用[^1]对应第一个解决方案,引用[^2]对应第二个和第三个方法。 最后,生成相关问题的时候,需要围绕CMD乱码的其他可能原因、不同编码的区别、如何验证设置是否生效等方面提问,帮助用户进一步理解问题。</think>[系统级指令响应] # CMD中文乱码解决方案 通过修改控制台编码设置可有效解决Windows命令行中文乱码问题,以下是三种系统级解决方案: ### 方法一:临时修改代码页(推荐新手) 1. 打开CMD窗口 2. 输入命令: ```cmd CHCP 65001 ``` 3. 右键标题栏 » 属性 » 字体选择`Consolas`或`新宋体` 该命令将当前会话编码设为UTF-8,但重启CMD后失效[^1] $$ \text{编码对照表} = \begin{cases} 936 & \text{GBK(简体中文)} \\ 950 & \text{BIG5(繁体中文)} \\ 65001 & \text{UTF-8} \end{cases} $$ ### 方法二:永久注册表修改(管理员权限) 1. 按`Win+R`输入`regedit` 2. 导航至路径: ``` HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe ``` 3. 新建`DWORD(32位)值`,命名为`CodePage` 4. 双击设置数值数据为`65001`(十六进制) 5. 同步修改字体属性为中文字体[^2] ### 方法三:快速注册表注入 1. 新建文本文件粘贴以下内容: ```reg Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe] "CodePage"=dword:0000fde9 "FaceName"="Consolas" ``` 2. 另存为`cmd.reg`(编码选UTF-8) 3. 双击执行注册表文件 [注意事项] - 需要重启CMD使设置生效 - 部分老旧程序需保持GBK编码时,使用`CHCP 936`恢复 - 系统语言版本差异可能影响路径,繁体系统需改用`CHCP 950`
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值