1

关于ASCII和GB2312、GBK、GB18030、UNICODE,这篇文章的讲解很有趣,读者比较容易理解。ASCII-->GB2312-->GBK-->GB18030-->UNICODE的发展历程
这里,我就大概总结下:

ASCII编码

ASCII编码起源于美国,用一个字节来表示一个字符,因此可以表示256个字符。起初,美国人只使用了1-127个字符,但很快,其他国家开始用尽了剩下的字符(128-255,称为扩展字符集)。


GB2312编码

后来,中国也引进了计算机,发现常用的汉字有6000多个,但是在ANCII编码方案中的所有字符已经被使用殆尽。此时,GB2312编码应运而生。
GB2312编码方案规定:2个字符表示一个汉字。一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字。这样就可以组合出大约7000多个简体汉字。


GBK编码

后来,中国程序员发现,使用GB2312编码方案还是无法表示某些字,于是干脆不再要求低字节一定是127号之后的内码,只要第一个字节是大于127就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字符集里的内容。这既是GBK编码,GBK 包括了 GB2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。
这种方案,1个汉字==2个字符


UNICODE编码

在UNICODE编码出现之前,各个国家都有自己的一套编码方案,因此搞得谁也不认识谁,谁也不支持别人的编码。
此时,为了国际统一,ISO(国际标谁化组织),重新搞一个包括了地球上所有文化、所有字母和符号的编码!这就是Unicode编码。Unicode是用两个字节来表示为一个字符,总共可以组合出65535不同的字符


ASCII时代:一个汉字==2个字符
UNICODE时代:一个汉字==1个字符

为什么使用Unicode

当开发应用程序时,当然应该考虑利用Unicode的优点。即使现在你不打算对应用程序进
行本地化,开发时将Unicode放在心上,肯定可以简化将来的代码转换工作。此外,Unicode还
具备下列功能:
• 可以很容易地在不同语言之间进行数据交换。
• 使你能够分配支持所有语言的单个二进制. exe文件或DLL文件。
• 提高应用程序的运行效率(本章后面还要详细介绍)。
Win2000以后的系统从底层支持Unicode字符。就现在来看,尽量要要用Unicode字符,这样可以提高程序效率,避免系统在内部进行转换。Win2000以后的系统中,所有API函数只接受Unicode字符,如果传入ASCII字符,系统会自动把它转换成Unicode字符,再调用函数。


07未
722 声望2 粉丝