字符串的编码问题详解:
首先我们要先知道这几个名词:字符(char),字符集(charset),编码字符集Coded Character set),字符编码方案(Character Encoding Scheme),编码(Encoding)
字符:就是文字与符号的总称
字符集:就是字符的集合,
常用的字符集有:
ASCII:美式字符集,包含大小写英文字符、阿拉伯数字和标点符号以及33个控制符号
ISO-8859-1:西欧字符集,包好ASCII字符集和西欧国家的字符,通常说成Latin-1
GB2312:简体中文字符集,一共收录了7445(包括6763个汉字和682个其他字符【包括ASCII字符 集】)个字符,未收录繁体字符和一些偏僻字
BIG5:繁体字符集,包括国际繁体字13053个
GBK:国际简繁体字符集,包括GB2312和BIG5和一些符号,共有21003个
GB18030:是国家指定的一个强制性大字符集标准,包括GBK和其他所有中文字符,GB18030-2000 包含27533个字符,GB18030-2005包括70244个汉字
Unicode字符集,几乎包括世界上所有语言的文字
编码字符集:
一个字符集想要被计算机表示,就应该先映射成一个数字代码,因为计算机本质只能表示数字
所以编码字符集:就是为每一个字符赋一个数字代码
字符编方案:
计算机是如何存储的呢?,计算机只能存储字节序列,所以就要将这些数字代码转化成字节序列,如何转化?这就是字符编方案的事了
字符编码方案:将字符集中字符所对应的数字代码转化为字节序列,一个编码字符集对应多个字符编码方案
哥哥字符集的编码方案:
ASCII:定常编码方案:使用1个字节,7位表示编码,最高位表示奇偶校验
ISO-8859-1:定长方案,使用1个字节便是编码
GB231、BIG5和GBK:定常编码,使用2个字节编码
GB18030:使用变长编码方案,使用1,2,4字节编码
Unicode:UTF-8变长编码方案,1~6个字节编码,(英文,数字,符号用1个字节,中文用3个字节)是互联网和UNIX/Linux系统广泛支持的
UTF-16定常编码方案:使用2字节编码,java内部和Windows XP内部使用的就是这种编码方案
编码:就是将编码字符集和字符编码方案组合起来