ASCII、Unicode、UTF-8字符集编码

ASCII码

  计算机内部,所有信息都是由二进制的字符串表示

  每一个二进制位有“0”、“1”两种状态,因此8个二进制位可以表示256个状态,每个状态代表一个符号就是256个符号,从0000000到11111111。

  上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。

  ASCII码一共规定了128个字符的编码,比如空格"SPACE"是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。

 

Unicode码

  ASCII码通过1个字节的描述仅能表示256个字符,对于非英语国家的文字不能完全描述

  Unicode是一个很大的集合,现在的规模可以容纳100多万个符号,可以描述中文、法文、阿拉伯文字

  Unicode旨在建立一套能够描述所有字符的字符集,它使用2个字节来描述一个符号

  Unicode是一个符号集,它只规定了符号的二进制码,未规定其如何存储。

 

UTF-8

  互联网的普及,强烈要求出现一种统一的编码方式。UTF-8就是在互联网上使用最广的一种Unicode的实现方式。

  UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。

  UTF-8的编码规则很简单,只有二条:

    1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。

    2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

  

  

  

参考:

  http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

  http://baike.baidu.com/link?url=mmbfGGUSEPtqy77MtHdub7ayrvfyfQ5hqTetq5tU5a6KmRi1ieBvfwBTb1CtwAQjJy48AQSKohmky-XaodqRE_

posted @ 2017-02-21 16:06  水手哥  阅读(200)  评论(0编辑  收藏  举报