ASCII | ANSI | |
---|---|---|
全称 |
American Standard Code for Information Interchange,美国信息互换标准代码。 已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准
|
American National Standard Institite,美国国家标准协会的一种编码标准。后者更强调国家标准,一般是面向世界范围内的国别之间的交流。该协会规定了很多类似的标准。 |
作用域 |
针对拉丁语系的文字的表示 适用于所有拉丁文字字母
ASCII码有7位码和8位码(带奇偶校验)两种形式
|
针对各国语言之间的交互信息的 |
关系 |
ANSI可以说是ASCII的扩展(为了支持非拉丁语系的语言) |
|
ANSI vs unicode
其次,一般大家都会讲ANSI码和Unicode码对比,两者都是世界各种语言的表示方法。不同的是,ANSI在不同语言中有不同的具体标准,比如,在简体中文系统中就是GB2312.Unicode相对而言就正如其名,是Universal的,真正通用的格式。
编码位数,内容简述
ASCII码:公共的只有0-127,即在任意的环境下这128个字符都表示的一样,后面的有自己定义的,并不通用。详见网文《ASCII码内容》 GB2312:80年中国发的标准,对象是汉字。是1字节与2字节混合的编码,兼容ASCII编码。意思是,GB2312当显示ASCII里的字符时,使用1个字节,当表示汉字部分时用2个字节表示。GBK:是国家在标准GB2312基础上扩容后的编码,兼容GB2312 UTF-8:这个并不固定位数(8,16,32都可能)。可以表示中文。 Unicode:采用16位编码。Windows推荐的编码。可以表示中文。Unicode是一个计算机的组织指定,它为了解决上面1个字节或2个字节表示1个字符的问题。因为这种情况对于计算机处理是个问题。 UTF-32:采用32位编码。可以表示中文。
unicode最早的版本Unicode规定1个字符全部由2个字节表示。UNICODE编码表可以表达65536个字符。 后来有些文字规模比较大,在用2个字节无法全部放下,所以又把Unicode修改为4个字节表示1个字符。而4字节的Unicode前65536编码位置就是2字节的Unicode。 10101101 10101111(这是2字节Unicode的编码)直接在它前面补0就成了4字节的Unicode 00000000 00000000 10101101 10101111(这是4字节的Unicode编码)。 反过来,如果前面是0,直接将0去掉,就成了2字节的Unicode编码。UTF-7、UTF-8、UTF-16和UTF-32是Unicode编码的实际存储方案。 ASCII、GB2312、Unicode等因为是不同国家、不同机构制定的, 所以他们各自包含的文字和符号是不同。 例如GB2312中有现代汉语常用汉字的编码,而ASCII就没有汉字编码。 同一文字或符号在不同的编码中具体的编码数值不同。 我们现在的计算机操作系统主要使用的16位(2字节)的Unicode。 也就是说,我们平时使用的应用程序不管用什么样的编码表示文字,它在提交给操作系统软件时,都会被转换为用Unicode编码表示的文字。(ysmz4:这句话我存保留意见)这里还有:http://blog.csdn.net/xingcaizxc/article/details/8736399