批处理中文乱码bat脚本中文乱码解决方法(附视频教程)
- 小编:霸主
- 2024-08-11 09:57
使用中文Windows操作系统时,可以使用批处理来帮我们完成一些任务。为了了解批处理的执行过程,在编写批处理时还可以加上一些中文输出信息。不过有些时候,批处理输出的这些中文会出现中文乱码的现象。
批处理出现中文乱码的原因:
批处理是在cmd命令提示符中运行的。中文语言Windows系统中,cmd默认使用936代码页,说白了就是使用GBK编码。
我们创建批处理文件也就是bat脚本时,都是先使用记事本先创建txt文档,在txt文档中创建代码并保存,然后将扩展名.txt更改为.bat。而记事本默认使用65001代码页,也就是使用UTF-8编码。
由于两者编码不一致,从而导致批处理中出现中文乱码。
批处理出现中文乱码的解决方法:
既然是编码不一致导致的问题,那么问题解决方法就简单了,想办法让它们编码一致问题就能解决。下面提供几种常用的解决方法。
方法一、将批处理脚本编码改为GBK
创建txt文档,创建代码后,选择“文件 -> 另存为”,编码选择“ANSI”,保存。
或者用记事本打开bat脚本,然后选择“文件 -> 另存为”,编码选择“ANSI”,保存。
方法二、声明以UTF-8编码运行批处理
在脚本开头位置加入“chcp 65001”这行命令,文件是UTF-8编码,在cmd中也以UTF-8编码运行批处理。
方法三、修改cmd配置,让cmd默认以UTF-8编码。
cmd启动时会读取注册表中的一些配置,我们可以通过注册表中的两个位置中的一个来实现。
1、HKEY_LOCAL_MACHINE
1) 按快捷键“Windows+R”打开运行,在运行中输入“regedit”,并点击“确定”打开注册表编辑器。
2) 在注册表编辑器中,打开以下位置:
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
3) 选择Command Processor注册表项后,在右侧区域空白处,右键 -> 新建 -> 字符串值,并命名为“Autorun”。
4) 双击Autorun,将数值数据设置为“chcp 65001”,并点击“确定”。
5) 运行批处理,中文正常显示。
2、HKEY_CURRENT_USER
1) 按快捷键“Windows+R”打开运行,在运行中输入“regedit”,并点击“确定”打开注册表编辑器。
2) 在注册表编辑器中,打开以下位置:
计算机\HKEY_CURRENT_USER\Console
3) 选择Console注册表项后,在右侧区域空白处,右键 -> 新建 -> 项,并命名为“%SystemRoot%_system32_cmd.exe”。
4) 选择%SystemRoot%_system32_cmd.exe注册表项,在右侧区域空白处,右键 -> 新建 -> DWORD (32位)值,并命名为“CodePage”。
5) 双击CodePage,将基数设置为“十进制”,数值数据设置为“chcp 65001”,并点击“确定”。
6) 运行批处理,中文正常显示。
注意,只需要修改其中的一个即可,两个同时修改会导致批处理运行出错。
这里给大家分享了三种批处理中文乱码bat脚本中文乱码解决方法。需要注意的是方法三,方法三中其实包含了两种方法,而且这两种方法不能同时使用,选择其中一种即可,千万注意。大家如果遇到问题,可以根据自己的情况,选择文章中最合适的一种方法解决问题。