当前位置:   article > 正文

ANSI、ASCII、UTF-8、UNICODE、UCS-2、GBK区别与联系_ansi和gbk什么关系?

ansi和gbk什么关系?

ANSI编码

ANSI(American National Standards Institute—美国国家标准学会)

因为地区的不同,不同国家编码字符的标准也是不一样的,这就导致了GB2312、GBK、Big5、Shift_JIS 等各自的编码标准的产生。例如:在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。在英文Windows操作系统中,ANSI 编码代表 ASCII编码;
不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。
对于0x00~0x7F之间的ANSI字符,1个字节就代表1个字符。
总的来说ANSI码就是各个国家使用码的集合,在不同地方,不同操作系统,ANSI代表的码就不一样,且不能相互之间转换。

ASCII编码

ASCII (American Standard Code for Information Interchange—美国信息交换标准代码)
产生原因:
因为计算机存储、运算数据都使用二进制,但是还有一些字符也需要二进制表示,所以为了不造成混乱美国有关的标准化组织就出台了ASCII编码。
表达方式:
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。

UNICODE编码

Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。
紧接上述的ANSI码,为了让不同国家的编码统一,统一码联盟组织创建了UNICODE编码。
Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。

UTF-8编码

UTF-8(Unicode Transformation Format—可变长字符编码)
是一种针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部份修改后,便可继续使用。
通俗说就是简化版的unicode编码。

UCS-2编码

UCS-2(Universal Character Set coded in 2 octets)
是国际标准化组织iso开展的ISO/IEC 10646项目定义的编码。
UCS-2是固定长度为16位的unicode字符集。
UCS-2是用两个字节来表示代码点,
其取值范围为 U+0000~U+FFFF。
还有UCS-4,即用四个字节表示代码点。它的范围为 U+00000000~U+7FFFFFFF,其中 U+00000000~U+0000FFFF和UCS-2是一样的。
代码点:字符
代码单元:字符集

UCS-2的优点:
对于亚洲字符的存储空间需求比UTF-8少,因为每个字符都是2个字节。
处理字符的速度比UTF-8更快,因为是固定长度编码的。
对于windows和java的支持更好。

注意:UCS-2和UCS-4只规定了代码点和文字之间的对应关系,并没有规定代码点在计算机中如何存储。规定存储方式的称为UTF(Unicode Transformation Format),其中应用较多的就是UTF-16和UTF-8了。

GBK编码

GBK(Guo-Biao Kuozhan—国家标准扩展码)
外文名(Chinese Internal Code Specification)
针对于unicode浪费空间的问题,西方人提出了utf-8(可变长字符串),但是utf-8存储一个中文需要三个字节,所以我们中国人也提出了自己的存储字节方式GBK,一个中文只需要两个字符。
gbk和utf-8两种编码之间转换要通过unicode来间接实现。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/924921
推荐阅读
相关标签
  

闽ICP备14008679号