ASCII
参考:http://zh.wikipedia.org/wiki/ASCII
AmericanStandardCode forInformationInterchange,美国信息交换标准代码
用一个字节表示128个字符,其中不可显示字符33个.33个字符中有一些是已经废除的控制字符。另外就是95个可显示字符。
128个字符显然不够用,只能支持26个英文字母,阿拉伯数字和标点符号。
具体字符表参考上面的wiki地址。
注意,一个字节最多可以表示256个字符,但是ASCII并没有使用最高位,因此7位只能表示128个字符。
ISO/IEC 8859-1
参考:http://zh.wikipedia.org/wiki/ISO/IEC_8859-1
既然ASCII有高位不用,这么浪费。8859-1又称Latin-1字符集在ASCII后面空置的0xA0-0xFF的范围内,加入96个字母及符号,藉以供使用附加符号的拉丁字母语言使用。
这个字符集仍然不能支持全世界的语言文字。
GB2312
参考:http://zh.wikipedia.org/wiki/Gb2312
GB 2312是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又稱GB0。
GB 2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。
GB2312并不能支持所有罕见字,因此又有后来的GB系列字符集。
2312字符集单位是区,每个区包含94个字符或者汉字.一共有94个区。
10-15区及88-94区没有用。
汉字在2312中用两个字节表示。高位字节是区的编号+0xA0,低位字节是该区的汉字所在编号+0xA0。比如'啊'字,在2312的16区第一个。
因此两个字节表示为:0xB0=0xA0+16,0xA1=0xA0+1 也就是:0xB0A1.
这种加上0xA0的编码方法叫做EUC.参考:http://zh.wikipedia.org/wiki/EUC
完整字符集表参考:http://www.knowsky.com/resource/gb2312tbl.htm
注意,总是两个字节表示字符。比如A的对应编码是0xA3C0.
这些在2312字符集中的字符都是全角。
Unicode
unicode(统一码)用来表示全世界所有文字,并且仍然在不断发展。参考:http://baike.baidu.com/view/40801.htm和http://zh.wikipedia.org/zh-cn/Unicode
编码方式:
Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符。
实现方式:
Unicode的实现方式不同于编码方式。一个字符的Unicode编码是确定的。但是在实际传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对Unicode编码的实现方式有所不同。Unicode的实现方式称为Unicode转换格式(Unicode Transformation Format,简称为UTF)
UTF-8节省空间,是1到4个字节的变长存储方式。参考:http://zh.wikipedia.org/wiki/UTF-8
UTF-16固定为两字节表示,但是根据字节顺序的不同,又有UTF-16 BE和LE之区别。
暂时这么多,以后逐步完善。