Windows 解决cmd/dos窗口中文乱码问题

这篇具有很好参考价值的文章主要介绍了Windows 解决cmd/dos窗口中文乱码问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


CMD/DOS窗口出现中文乱码及解决方案(以下演示是在Win10系统),本文提供了多种解决方案,总有一款适合你。

一、问题描述

有时候我们在cmd窗口执行命令或程序时,会看到cmd窗口出现中文乱码的问题
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
这主要是因为cmd窗口默认使用的是GBK编码,如果命令或程序输出的内容编码与cmd窗口使用的编码不一致,就会出现中文乱码的问题

二、解决方案

解决方案主要有两大类:
1.更改DOS窗口代码页;
2.更改批处理文件编码;

1. 更改DOS窗口代码页

如何查看当前窗口的代码页?
方式1:在dos窗口顶部右键菜单 > 属性 > 选项 tab页 > 当前代码页
方式2:在dos窗口输入chcp命令查看

C:\Users\cyinl>chcp /?
显示或设置活动代码页编号。
CHCP [nnn]
nnn   指定代码页编号。
不带参数键入 CHCP 以显示活动代码页编号。

(部分)代码页编号如下:

代码页 描述
65001 UTF-8 编码
950 繁体中文
936 简体中文 GBK (默认)
437 MS-DOS 美国英语

如何更改dos窗口代码页?
更改dos窗口代码页又分为多种方式,每种方式各有优缺点。

方式1:更改dos窗口代码页(临时有效)

在dos窗口 执行chcp 65001更改dos窗口代码页
优点:切换代码页灵活,可以将chcp命令放到bat批处理文件内,临时更改控制台窗口的编码格式
缺点:仅对当前窗口生效的,其他窗口或新打开的dos窗口仍为默认的936

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

验证,执行curl www.baidu.com,可以看到中文乱码问题解决了Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch

方式2:修改注册表CodePage项(永久有效)

1)win+r 打开运行器,输入regedit 回车,打开注册表;
2)在路径计算机\HKEY_CURRENT_USER\Console\%SystemRoot%_System32_cmd.exe 找到CodePage 项(没有的话新建一个,DWORD类型);
3)修改CodePage的值为:十进制65001 (对应十六进制:fde9)保存即可
优点:一劳永逸
缺点:通过.lnk 快捷方式打开的dos窗口,默认仍是 936(就很奇怪)

Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
对通过Win+R 打开运行,输入cmd 回车,打开的cmd窗口,进行验证
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
对通过文件资源管理器,地址栏输入cmd 回车,打开的cmd窗口,进行验证
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
对双击C:\WINDOWS\System32\cmd.exe,打开的cmd窗口,进行验证
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
开始菜单>Windows 系统>命令提示符搜索>输入cmd>命令提示符 打开的cmd窗口,进行验证
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
对执行bat批处理文件打开的cmd窗口,进行验证
test.bat 测试文件

@echo on
chcp
pause

双击test.bat批处理文件
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch

注:开始菜单或搜索栏里打开的dos窗口,实际上是通过 xxx.lnk 快捷方式打开的

方式3:修改 .lnk 快捷方式的文件属性(永久有效)

1)找到‪C:\Windows\System32\cmd.exe 命令程序;
2)右键cmd.exe> 发送到>桌面快捷方式,创建一个cmd的快捷方式 cmd.exe - 快捷方式.lnk
3)桌面找到cmd的快捷图标,右键 > 属性 > 快捷方式 > 目标 后边增加 /K "chcp 65001"(注意跟 cmd.exe 之间有个空格),然后点击应用即可
优点:对 xxx.lnk 打开的dos窗口有效,可以弥补【方式2】注册表的CodePage 注册项对 .lnk 快捷方式打开的dos窗口不生效的不足
缺点:仅对修改的快捷方式的打开的dos窗口有效,如果有多个.lnk 快捷方式,需要分别进行修改

Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
回到桌面双击cmd.exe - 快捷方式.lnk ,打开dos窗口,验证效果如下:
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
开始菜单>Windows 系统>命令提示符搜索>输入cmd>命令提示符 打开的dos窗口,进行验证,可以看到未生效
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
想要开始菜单搜索里打开的dos窗口也生效,需要修改对应的 .lnk 里的属性
操作步骤:
1)开始菜单搜索里找到命令提示符右键 > 打开文件位置
(我这里是C:\Users\cyinl\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools
2)找到命令提示符快捷方式,右键>属性>快捷方式>目标 后边增加 /K "chcp 65001",点击应用即可
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
开始菜单搜索打开dos窗口,进行验证,可以看到已生效
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch

方式4:修改注册表增加AutoRun项(永久有效)

1)win+r 打开运行器,输入regedit 回车,打开注册表;
2)在路径计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor ,右键 > 新建 > 字符串值,重命名为AutoRun 项;
3)双击AutoRun,编辑数值数据为:chcp 937(注意这里我为了区分其他方式更改的效果,设置为了937)
优点:一劳永逸,且对所有途径打开的cmd都生效
缺点:命令行启动后首行显示的不再是Windows版权信息,而是"Active code page: xxx"(好像也不算什么缺点);另外就是对于快捷方式来说【属性】配置后执行于【AutoRun】的配置,后执行的会覆盖先执行的(这点应该难理解吧)

Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
对通过Win+R 运行cmd打开的dos窗口进行验证如下,可以看到 AutoRun配置已生效。
注意:【方式2】修改的注册表CodePage项,我并没有去掉,说明 AutoRun 配置覆盖掉了 CodePage 配置
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
双击桌面的cmd.exe - 快捷方式.lnk 图标,验证效果如下,可以看到注册表里的AutoRun配置已生效,但是紧接着被其他配置给覆盖了,最终代码页显示为 65001
注意:目前 cmd.exe - 快捷方式.lnk 有3处配置,结合上边的 AutoRun 配置会覆盖 CodePage,可以推测出,这里的 65001 是 快捷方式的【属性】配置起的作用
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
cmd.exe - 快捷方式.lnk属性里的 /K "chcp 65001" 去掉,然后重新打开dos窗口,验证上边的推测,从结果看 AutoRun 配置最终生效了(严格来讲是都生效了,只是后执行的会覆盖先执行的)
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
开始菜单>Windows 系统>命令提示符搜索>输入cmd>命令提示符 打开的dos窗口,进行验证。
注意:对于【开始菜单】或【搜索】打开的命令提示符,共有【方式2】【方式3】【方式4】3个配置,结合验证结果可以看出快捷方式【属性】配置最终生效了
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
对执行bat批处理文件test,bat,打开的dos窗口,进行验证。
注意:对于批处理文件,此时只有【方式2】【方式4】两处配置,可以看出【方式4】的AutoRun配置最终生效了
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch

最后结论:
配置优先级 【快捷方式的属性】>【注册表的AutoRun】>【注册表的CodePage】,即 高优先级配置会覆盖低优先级配置(严格来讲这里说的优先级高,只是因为它后执行,把先执行的效果给覆盖掉了)

2. 更改批处理文件编码

通过更改批处理文件的编码方式,使文件的编码与DOS窗口的代码页对应

方式1:更改批处理文件编码方式

使用记事本,新建test2.bat批处理文件,内容如下,另存为,编码选择:ANSI

@echo on
echo 中文
pause

双击test2.bat批处理文件,执行效果如下:
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
是乱码没错,这是因为在前面演示过程中更改的AutoRun配置将dos窗口代码页设置为了437

到注册表里把AutoRun项删掉(这里就不演示怎么删了),然后再双击运行test2.bat
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch
还是乱码,那就对了,聪明如你应该能想到,注册表里还有个CodePage 配置,配置的是:十进制 65001(对应 UTF-8),修改为 十进制 936(对应 ANSI/GBK)或删掉它!(不要问我怎么操作?我不会告诉你的!)

我这里改为936(我注册表里最初配置的就是936,这里相当于复原),再双击运行test2.bat,中文乱码问题解决了
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch



当然,你也可以在批处理文件里,在中文输出命令之前,使用chcp 更改dos窗口的代码页,使其与批处理文件的编码对应

使用记事本,新建test3.bat批处理文件,内容如下,另存为,编码选择:ANSI

@echo on
chcp 936
echo 中文
pause

双击运行test3.bat,进行验证
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch



如果批处理文件保存时,编码选择:UTF-8,那么需要更改dos窗口的代码页为:65001,这里就不演示了。

总之就是保持批处理文件本身的编码方式与DOS窗口代码页对应,这样应该就不会出现乱码问题了



最后:
如果还有乱码问题,可以尝试在DOS窗口的属性里,改下字体试试。
Windows 解决cmd/dos窗口中文乱码问题,Windows,windows,batch文章来源地址https://www.toymoban.com/news/detail-515760.html

到了这里,关于Windows 解决cmd/dos窗口中文乱码问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • powershell中文乱码 windows cmd

    问题的起因是windoes默认字符编码是GBK,而目前通用字符集使用的是UTF-8 关于字符集的问题欢迎移架到 字符集 最终解决方案 为使用最新的windows特性,将默认字符集切换到UTF-8 方法1. 进入控制面板 - 时钟和区域 - 区域 - 管理 - 更改系统区域设置 - 勾选Beta版:使用 UnicodeUTF-8提供全

    2024年02月02日
    浏览(9)
  • jenkins windows节点中文乱码问题解决

    jenkins windows节点中文乱码问题解决

    本文主要讲解一下在jenkins中新增windows节点后的乱码问题逐步解决方法 第一步 刚开始创建完slave节点后,使用该节点运行项目后的在jenkins控制台输出的日志显示如下:(中文显示正常) 但是通过api集成到平台后中文会变成乱码: 这里我就思考是因为jenkins的编码问题导致,所

    2024年02月13日
    浏览(12)
  • Windows下bat脚本启动Java进程cmd中文乱码修复

    建议执行前备份注册表 中文乱码原因: 1、cmd默认展示编码为GBK 2、cmd默认展示字体展示中文会乱码 以下脚本会将cmd窗口字体改为UTF-8,并修改字体为Consolas,需要注意的是,此操作属于永久操作,重新打开cmd即可生效 另外,如需执行条件判断逻辑可以使用 reg query 来先查询出

    2024年02月12日
    浏览(15)
  • Windows terminal 添加 git bash 解决git中文乱码显示问题

    Windows terminal 添加 git bash 解决git中文乱码显示问题

    说明: 点击箭头 选择设置 说明: 点击\\\"添加新配置文件\\\" 配置名称 命令行,可执行文件的具体语句 C:Program FilesGitbinbash.exe 启动目录,配置指定目录,默认打开是在 terminal 的安装目录 图标,用于在终端前显示 解决办法:在命令行中添加参数 --login -i ,完整的命令行内容

    2024年02月14日
    浏览(12)
  • Windows10环境下的Eclipse控制台输出中文乱码的问题的解决

    Windows10环境下的Eclipse控制台输出中文乱码的问题的解决

    操作系统:Windows10中文版 IDE:Eclipse 2022-12 开发语言:Java JDK19 项目编码:UTF-8 写了一个很简单地main方法,打印出中文,结果出现了乱码的情形,如下图: 上网搜索了很多解决方式,大部分都是说要更改项目的字符编码集。如下图: 按照网上的说法将项目的编码字符集由UT

    2024年02月02日
    浏览(50)
  • windows中文界面乱码问题

    windows中文界面乱码问题

    我的便携是内部返修机,买来时就是英文版,在设置中改成简体中文就可以了,与中文版没有什么区别,已经升级成win11。windows自身的应用、360之类的界面都能正常显示,但是个别应用总是乱码,根据客服的提示设置一番也不管用。微软的官方网站上也没有找到解决办法。最

    2024年02月15日
    浏览(10)
  • jenkins在windows上中文乱码问题

    项目需要,我采用jenkins + python + vs2017来实现自动打包的流程,之前都是用现成的,这一次是自己实践,搭建过程就省略了,教程太多,jenkins控制台的乱码问题,倒是让我比较困扰,所以记录一下。 jenkins中开始打包任务之后,发现在vs2017编译之后输出的日志中,中文部分都是

    2024年02月14日
    浏览(16)
  • windows 解压文件出现乱码 7zip解压文件中文乱码 解决方法

    按照如下教程,更改windows默认编码格式为utf-8之后。 https://blog.csdn.net/qq_43780850/article/details/129122210 解压文件时,文件中的中文出现乱码。原因是压缩文件的格式为GBK,而我将windows平台的默认编码改成了UTF-8,导致解压出现乱码。此时只需要按照上面的教程,取消勾选utf-8支持

    2024年02月13日
    浏览(19)
  • windows的cmd命令窗口介绍

    windows的cmd命令窗口介绍

    1.打开cmd 1.1.方式一 左下角搜索:“运行” - 打开 输入\\\"cmd\\\" - 确定 1.2.方式二 直接使用快捷键 windows + r 即可打开 然后输入cmd,点击确认 1.3.方式三 打开文件管理器,输入cmd,回车 即可在该文件路径下打开命令行: 2.文件路径表示 2.1.绝对路径 以盘符开始的路径:D:IBMILOGC

    2024年02月07日
    浏览(14)
  • 常用的Windows黑窗口cmd命令

    常用的Windows黑窗口cmd命令

    Windows 命令提示符(cmd)提供了许多命令,用于执行各种系统管理任务、文件操作、网络配置等。以下是一些常用的命令,按照功能进行分类: 1. 文件和目录操作命令: dir :列出当前目录中的文件和子目录。 示例: dir /s 命令用于列出当前目录及其子目录中的所有文件和子

    2024年02月10日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包