问题描述
有如下bat批处理脚本:
@echo off
echo hello,world.
echo 你好,中国
pause
在CMD执行该脚本时,出现了中文乱码:
C:\WINDOWS\system32\cmd.exe
hel1o, world.
梡犲y锛屼腑锲?] 中文乱码了
请按任意键继续.问题分析
乱码都跟字符编码有关系。计算机只能处理数字,如果遇到文本,必须先将其转换为数字后才能处理,由此出现了字符编码(字符集)。如果编码时采用某种字符编码,那么解码时,必须得相对应使用同一种字符编码,如采用不同的字符编码,会出现乱码。
问题解决
一、转换脚本文件的编码方式
默认情况下,在bat脚本文件中,如果中文不是ANSI编码,就会出现乱码。因此,可以采用Windows操作系统平台自带的记事本打开脚本文件,点击菜单【文件】-【另存为】操作,选择ANSI编码进行保存。
转换编码后,再次运行,中文乱码问题得到解决:
C:\WINDOWS\system32 \cmd.exe
he11o, world.
你好,中国
请按任意键继续二、更改代码页
在原先bat脚本文件中声明更改代码页:
chcp 65001
@echo off
echo hello, world.
echo 你好,中国
pause
代码页更改为Unicode (UTF-8) 。再次运行,中文乱码问题得到解决:
C:\WINDOWS\system32\cmd.exe
Active code page:65001
hel1o.wor1d.
你好,中国
Press any key to continue拓展:chcp命令
chcp命令用于更改活动控制台代码页。
常用代码页映射如下:
|代码页|映射的字符集|
|—|—|
|936|GB2312|
|20127|US-ASCII|
|65001|UTF-8|




还没有评论,来说两句吧...