编码的详细引见

编码的详细介绍

一.基础概念

 

字节:1个字节等于8位二进制数(0或者1),取值范围0~255之间.数据存储是以字节(Byte)为单位,数据传输是以位(bit)为单位,一个位就是0或者1,每8个位组成一个字节.1Kb=1024bit,1KB=1024Byte=1024*8bit.([1]百科中还有KB和KiB的区别)

 

字符:就是一个语言的符号,“中”字就是一个字符.字符所占的大小由编码方式决定,“中”在UTF-8中占3个字节,而在GBK中则占两个字节.

 

字符集:字符的集合,像Unicode字符集

 

字符编码:像字符用多少个字节表示等问题,是编码决定的.例如Unicode字符集编码就有很多,例如UTF-8,UTF-16,UTF-32等.

 

字符集和字符编码是分开的概念,但有时称呼上去有些模糊,我们经常笼统的称这些Unicode字符集的编码为Unicode编码.

 

内码:操作系统内部的字符编码,像早期的DOS用的是ASCII,而现在的操作系统大部分采用的是Unicode编码.

 

代码点:Unicode字符集收录的这个世界所有的文字和符号,对于每一个符号都定义了一个值,这个值就是代码点.

 

Endian:'中'的UTF-16编码为(0x4E,0x2D),数据传输的过程中,字节的顺序有可能会变,像现在这种为Big Endian,而(0x2D,0x4E)这种为Little Endian.

 

二.编码历史

早期的编码是ASCII,因为只有英文国家在用计算机,而后计算机发展,非英文的国家使用计算机,他们为自己的字符设定编码,像中国的GB2312,*的BIG5等,而ASCII和这些派生的字符集称为ANSI字符集,在后来,就到了大家熟悉的Unicode时代.

 

参考文献

1.字节_百度百科:http://baike.baidu.com/view/60408.htm

2.编码简介:http://www.iteye.com/topic/726265