字符编码
GB2312
GB2312编码对所收录字符进行了“分区”处理,共94个区,每区含有94个位,共8836个码位。
它的区位码范围是:0101-9494。
为兼容ASCII码,区号和位号分别加上0xA0偏移就得到GB2312编码。在区位码上加上0xA0偏移,可求得GB2312编码范围:0xA1A1-0xFEFE
其中汉字的编码范围为0xB0A1-0xF7FE,第一字节0xB0-0xF7(对应区号:16-87),第二个字节0xA1-0xFE(对应位号:01-94)
GBK编码
当我们设定系统使用GBK标准的时候,它按顺序遍历字符串,按字节检测字符值的大小,若遇到一个字符的值大于127时,就再读取它后面的一个字符,把这两个字符值合在一起,用GBK解码,解码完后,再读取第3个字符,重新开始以上过程,若该字符值小于127,则直接用ASCII解码。
GB18030
GB18030-2000主要在GBK基础上增加了“CJK(中日韩)统一汉字扩充A”的汉字。
GB18030-2005的主要特点是在GB18030-2000基础上增加了“CJK(中日韩)统一汉字扩充B”的汉字。
Big5编码
在台湾、香港等地区,使用较多的是Big5编码,它的主要特点是收录了繁体字。
Unicode字符集和编码
国际标准化组织(ISO)为解决这一问题,它舍弃了地区性的方案,重新给全球上所有文化使用的字母和符号进行编号,对每个字符指定一个唯一的编号(ASCII中原有的字符编号不变),这些字符的号码从0x000000到0x10FFFF,该编号集被称为Universal Multiple-Octet Coded Character Set,简称UCS,也被称为Unicode。
UTF-32:
大小:4字节
特点:在存储的时候需要指定字节顺序,是高位字节存储在前(大端格式),还是低位字节存储在前(小端格式)。
缺点:它的缺点是浪费存储空间
UTF-16
大小:它采用2字节或4字节的变长编码方式(UTF-32定长为4字节)。
范围:0x0000~0xFFFF
特点:由于Unicode字符集在0xD800-0xDBFF这个区间是没有表示任何字符的,对Unicode中编号超出0xFFFF的字符,利用它们的编号做某种运算与该空间建立映射关系,从而利用该空间表示4字节扩展
UTF-8(最广泛使用)
UTF-8也是一种变长的编码方式,它的编码有1、2、3、4字节长度的方式,每个Unicode字符根据自己的编号范围去进行对应的编码。
BOM(不常用)
有的人就想到在文档最前面加标记,一种标记对应一种编码方式,这些标记就叫做BOM(Byte Order Mark),它们位于文本文件的开头,见下表。注意BOM是对Unicode的几种编码而言的,ANSI编码没有BOM。
sublime快捷键选中列:ctrl+shirt+L