ANSI和ASCII、GBK和GB2312、Unicode和UTF-8的区别

ANSI和ASCII区别

NSI码(American National Standards Institute)

美国国家标准学会的标准码


ASCII码(America Standard Code for Information Interchange)美国信息交换标准码
是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

可以认为是不同的东西!
ANSI码仅在前126个与ASCII码相同。

在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在英文Windows操作系统中,ANSI 编码代表 ASCII编码;在繁体中文Windows操作系统中,ANSI编码代表Big5;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。

GBK和GB2312

       GB2312,由中华人民共和国政府制定的,简体汉字编码规范,大陆所有计算机中的简体中文,都使用此种编码格式。与此对应的还有BIG5,是中华民国政府制定的,繁体汉字的编码规范,一般应用于海外计算机的繁体中文显示。所谓的繁体中文Windows,简体中文Windows,指的就是采用BIG5和GB2312编码格式的操作系统。这两种编码方式不兼容,如果使用一种编码的文本阅读器来读另一种编码的文本,就会出现乱码。比如在简体中文Windows上读BIG5编码的文件,就是乱码,反之亦然。使用简体浏览器浏览的时候,到了繁体中文网站,如果不改变码制,也是乱码。   

     GBK,又称GBK大字符集,简而言之就是将所有亚洲文字的双字节字符,包括简体中文,繁体中文,日语,韩语等,都使用一种格式编码,兼容所有平台的上的语言。GBK大字符集包含的汉字数量比GB2312和BIG5多,使得汉字兼容足够使用。

Unicode和UTF-8区别

unicode是一个字符集,utf8是在这个字符集基础上的一种具体的编码方案为更好的存储和传输,其他还有 UTF-16,UTF-32 等。

ASCII码跟Unicode没有本质的区别。只不过Unicode表示范围比ASCII大。ASCII可以表示127个英文字母,其中每个英文字母都有一个十进制编码,并且通过这个十进制编码转化成二进制数(编码)存入到内存当中(占1字节)。
而在Unicode中,英文字母的编码与其在ASCII中没有不同。只是Unicode每个字符占2个字节,于是转化为二进制时就变成‘000000 ASCII’。
同时Unicode支持中文字符以及其他字符的表示。这种非ASCII字符占用的内存更多一些。
而UTF-8则是在Unicode的基础上进行的再编码。其中对于字母的编码与Unicode和ASCII一致。
文本文档是用UTF-8编码保存的。这样可以最大限度的节省空间。但是当你对这个文本文档进行操作的时候,计算机是先把UTF-8转化为Unicode然后放到内存中,让用户进行操作,操作完成后在内存中还是Unicode模式。当你需要保存的时候在转化为UTF-8格式保存(节省空间)。
 

猜你喜欢

转载自blog.csdn.net/BlackPlus28/article/details/82793659