计算机编码

编码的历史发展?
从美国的ascii码开始,用8个二进制位表示一个字节,美国使用了0-127,即最高位为0。其他国家都按照自己的需要使用后128个编码来代表本国的文字或符号。
在这个混乱的时期内,中国的首个编码标准出世GB2313:使用2个字节来表示汉字,但是两个字节的首位均为1,只要检查到首位为1,就必须将后续一个字节一同处理;
后来发现不够用,就修改成127号之后就代表汉字,这就是GBK标准;
后为了囊括少数民族的语言,制定了GB18030标准,这套标准支持一字节的英文字符和两字节的中文字符。
后来国际标准组织ISO为了统一编码格式,出台了unicode编码,只给定了字符的二进制编码,ISO规定使用2字节存储各种字符,但是英文字符的存储,高字节8位都为0,会造成硬盘内存的浪费。

unicode的多种存储方式
互联网的出现,给出了unicode的实现,utf-8,utf-16,utf-32.分别代表,一次传输8位数据,16位数据,和32位数据。
UTF-8最大的一个特点,就是它是一种变长的编码方式。 它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII 码的范围时,就用一个字节表示,保留了ASCII字符一个字节的编码做为它的一部分,注意的是unicode一个中文字符占2个字节,而UTF-8一个中 文字符占3个字节。从unicode到uft-8并不是直接的对应,而是要过一些算法和规则来转换。unicode是信源编码,对字符集数字化; utf8是信道编码,为更好的存储和传输。
unicode编码方式
  1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
  2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。
复制代码
Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
--------------------±--------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

现代编码的主流
目前中国的大多数IT公司,如QQ,百度,雅虎,淘宝都是用的GB2313编码。但为兼容建议编码使用UTF-8,这是使用最为广泛的比编码格式

参考资料:
http://www.cnblogs.com/JohnABC/p/3507219.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值