关于命令提示符中不能正常显示汉字的问题及解决

为什么在命令提示符中会出现不能正常显示汉字的情况##

最近在写代码的时候,运行时会出现以下几个图片的现象:

所用软件:EditPlus

其中有一行关键字为:编码GBK的不可映射字符

在网上搜索其解决办法,大部分是保存成ANSI编码。

于是我保存为ANSI编码:

于是就可以正常显示了。

那么什么是ANSI编码呢?不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、Big5、Shift_JIS 等各自的编码标准。这些使用 1 至 4 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。 当然对于ANSI编码而言,0x00~0x7F之间的字符,依旧是1个字节代表1个字符。这一点是ANSI编码与Unicode编码之间最大也最明显的区别。

而原来的EditPlus默认的是Unicode编码,这里是没有汉字的。所以,就会出现乱码的问题。

编码有几种 ,计算机最初是在美国等国家发明的 所以表示字符只有简单的几个字母只要对字母进行编码就好 我们标准码 iso-8859-1 这就是一个标准 但是后来计算机普及了,于是就中国要使用计算机了 但是机器不认得中文,于是就有了国际码。 gbk gb2312都是这类。两个其实一个,一个是标准(发布的代号),一个是简称。后来多了个阿拉伯语、日语、韩语......所以就出来统一编码UniCode
ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。此字符集主要支持欧洲使用的语言。

GBK: 汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位,并涵盖了原Unicode中所有的汉字20902,总共收录了883个符号, 21003个汉字及提供了1894个造字码位。Windows 95系统就是以GBK为内码,又由于GBK同时也涵盖了Unicode所有CJK汉字,所以也可以和Unicode做一一对应。

我又联想到在安装一些软件的时候,有一个要求是目录中不能带有中文,这应该就是编码的缘故。

参考资料

posted @ 2016-03-20 17:26  20145310刘宇飞  阅读(2318)  评论(2编辑  收藏  举报