cmd 中文乱码 原因与解决

本文介绍了四种处理在Windows环境下运行bat脚本时遇到中文乱码问题的方法:1)将脚本编码改为GBK;2)在cmd中临时设置UTF-8;3)修改cmd的预设加载,分别针对LocalMachine和CurrentUser;4)调整Windows全局设置使其默认使用UTF-8。

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

目录

问题:运行bat脚本,中文乱码

原因:编码—解码规则不同

方法一 :改脚本为GBK

方法二 :仅本次以UFT-8运行脚本

方法三 :改cmd加载预设

1.改local machine

2.改Current user

方法四 :改Windos设置


问题:运行bat脚本,中文乱码

                

原因编码—解码规则不同

        记事本创建txt文件时,默认用UTF-8编码规则,将汉字编成二进制码。将txt改成bat后亦然。

                

        而cmd默认用GBK规则将二进码解码成汉字,编码-解码规则不同导致汉字乱码。

        查看cmd代码规则的方式是,光标在窗口栏最上方右键>>属性>>选项>>当前代码页

            

方法一 :改脚本为GBK

        记事本打开txt>>另存为>>编码选择ANSI

                

方法二 :仅本次以UFT-8运行脚本

        cmd中运行 chcp 65001 命令,或将其写入bat脚本中

                 

方法三 :改cmd加载预设

        原理是为cmd预设一些参数,比如字体、颜色和编码规则,每次cmd运行时都会先加载这些参数。有两种方法,分别是更改LOCAL_MACHINE的cmd配置CURRENT_USER的cmd配置。二者冲突时前者生效。据此推测cmd先加载CURRENT_USER的配置,后加载LOCAL_MACHINE的配置。

        注意:通过快捷方式打开的cmd,此方法不生效。即通过bat脚本、Win+R、C盘目录C:\Windows\system32\cmd.exe打开的cmd时,此方法有效;对于开始菜单的搜索栏,如果搜到的是快捷方式,那么打开的cmd编码将仍是GBK。可通过右键打开文件位置查看是否为快捷方式。

                

           推测快捷方式跳过了预设加载阶段。若希望快捷方式也有效,请参考文末参考连接1的方法3。

1.改local machine

        window键+R 打开运行程序,输入regedit,运行注册表编辑器,打开如下文件夹

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

        修改AutoRun文件,改为chcp 65001,若无此项则右键>>新建字符串值>>重命名为Autorun

                

2.改Current user

        window键+R 打开运行程序,输入regedit,运行注册表编辑器,打开如下文件夹

        计算机\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe

        修改CodePage文件,数值为65001,基数是十进制。若无此项则右键>>新建DWORD(32位)>>重命名为CodePage

                

方法四 :改Windos设置

       让cmd和一些软件默认使用UTF-8编码,不用每次打开cmd加载预设。

        因为更改了默认设置,可能导致原本不乱码的软件出现乱码如影响使用请改回。

        桌面左下角打开Windows设置页面>>时间和语言>>左边栏打开语言>>右边栏相关设置里打开管理语言设置

         

        

        点击左上角的管理页面>>更改系统区域设置>>当前系统区域设置下拉到底,改成中文(简体)>>勾选使用UTF-8提供全球语言支持。

                

参考链接

        Windows 解决cmd/dos窗口中文乱码问题_cmd中文乱码解决方法-CSDN博客

        让Windows CMD默认使用UTF-8代码页,解决一切恼人乱码问题!

   

解决cmd乱码问题有两种方法。第一种是临时修改编码方式,可以在命令行输入"chcp 65001",将编码格式改为UTF-8。这样可以解决当前会话中的乱码问题。\[2\]第二种是永久修改编码方式,可以通过注册表进行设置。首先按下Win键+R,输入"regedit"并确定,然后找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor路径。在该路径下右键点击,选择"新建",然后选择"字符串值"。将新建的字符串值命名为"autorun",然后右键点击修改,将数值数据填写为"chcp 65001",并确定。这样每次打开cmd命令窗口时,编码都会被自动修改为UTF-8,解决乱码问题。\[3\] #### 引用[.reference_title] - *1* [cmd中文乱码解决方案](https://blog.csdn.net/weixin_46505978/article/details/125144422)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [快速解决cmd命令行乱码问题](https://blog.csdn.net/lixiaoping666/article/details/116715579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值