6 字符编码

来源:互联网 发布:嫁给外国人 知乎 编辑:程序博客网 时间:2024/06/06 02:25

---------------------- android培训、java培训、期待与您交流! ----------------------


字符编码

  l  计算机里只有数字,计算机软件里的一切都是用数字来表示的,屏幕上显示的一个个字符也不例外。

  l  字符a 对应数字97, 字符对应98 等,这种字符与数字对应的编码规则被称为ASCII(美国标准信息交换码)。ASCII的最高bit位为0,也就是说这些数字在0127之间。

  l  中国大陆将每一个中文字符都用两个字节的数字来表示,中文字符每个字节的最高位bit都为1,中国大陆为每个中文字符制定的编码规则称为GB2312(国标码)

  l  在GB2312的基础上,对更多的中文字符(包括繁体)进行了编码,新的编码规则称为GBK. 

  l  中国的中字,在中国大陆的编码是十六进制的D6D0,而在中国台湾的编码是十六进制的A4A4,台湾地区对中文字符集的编码规则称为BIG5(大五码)。

  l  在一个国家的本地化系统中出现的一个字符,通过电子邮件传送到另外一个国家的本地化系统中,看到的就不是那个原始字符了,而是另外那个国家的一个字符或乱码。

Unicode 编码

  l  ISO(国际标准化组织)将全世界所有的符号进行了统一编码,称之为Unicode编码。

  l  “中”这个符号,在全世界的任何角落始终对应的都是一个十六进制的数字4e2d

  l  如果所有的计算机系统都使用Unicode编码,在中国大陆的本地化系统中显示的“中”这个符号,发送到伊拉克的本地化系统中,显示的仍然是“中”这个符号。

  l  Unicode编码的字符占用两个字节的大小,对于ASCII码所表示的字符,只是简单地在ASCII码原来占用的一个字节前面,增加一个所有bits的字节。

  l  Unicode只占用两个字节,在全世界范围内所表示的字符个数不会超过216次方(65536),实际上,Unicode编码中还保留了两千多个数值没有用于字符编码。

  l  在相当长的一段时间内,本地化字符编码将与Unicode编码共存。

  l  JAVA中的字符使用的都是Unicode编码,JAVA  在通过Unicode保证跨平台特性的前提下,也 支持本地平台字符集。

UTF-8编码

ASCII码字符保持原样,仍然只占用一个字节,对于其它国家的字符,UTF-8使用两个或三个字节来表示。使用UTF-8编码的文件,通常都要用EF BB BF作为文件开关的三个字节数据。

UTF-8的优点:

   l   不出现内容为0x00字节

   l   便于应用程序检测数据在传输过程中是否发生了错误。

   l   直接处理使用ASCII码的英文文档

UTF-8的缺点:

   l   某些字符需要使用二个字节

 

UTF-16编码

UTF-16编码在Unicode基础上进行了一些细节上的扩充,增加了对Unicde编码没有包括的那些字符的表示方式。

UTF-16Unicode的扩充并没有影响Unicde所包括的那些字符,只是增加了对Unicde编码没有包括的那些字符的表示方式,一个使用Unicode编码的字符就是UTF-16格式的。

Unicde编码将0xD800-0xD8FF之间,后面两个字节的数值为0xDC00-0xDFFF之间。

字符编码的编程体验



---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima

原创粉丝点击