为什么windows系统cmd窗口中文会乱码?
在windows环境下,我们用cmd打开一些bat脚本时,应该没少出现这种中文乱码的情况吧? 下面我们来看下具体原因和解决办法。
bat脚本内容:
@echo off
chcp 936
echo "你好.hello"
pause
这里有一个chcp 936
, 代表当前活动页的代码为GBK, 如果是UTF-8,则对应chcp 65501
。
常用的代码页编码映射:
如何查看自己系统的代码页编码?
直接在cmd中,执行chcp
即可
乱码原因:
文件编码和活动代码页指定编码不一致
通过notepad可以看到,当前这个文件的编码是UTF-8,但我们指定的内容编码是936,即GBK,两者编码不一致,所以就乱码了!
解决办法:
让两者编码保持一致! 我们上面通过chcp
查到了,当前的电脑活动代码页编码是936,即GBK,因此只需要修改文件编码为gbk即可(执行此操作,保存后可能原来的中文会变成乱码,因此注意提前备份一个,然后把乱码改成自己的备份的内容)
如何修改文件编码
以notepadd为例,操作如下:Endocing->Character sets -> Chinese -> GB2112
, 然后保存(注意保存后,需要修正里面的乱码,改为正常的中文,即上面提到的备份内容),后面再重新执行,已经正常了: