【原创】各种编码的关系

以下为个人总结,有问题欢迎指出。


ASCII 8位


ISO 8859-1,正式编号为ISO/IEC 8859-1:1998,又称Latin-1或“西欧语言”,是国际标准化组织内ISO/IEC 8859的第一个8位字符集。它以ASCII为基础,在空置的0xA0-0xFF的范围内,加入96个字母及符号,藉以供使用附加符号的拉丁字母语言使用。曾推出过 ISO 8859-1:1987 版。


utf-32 是 ucs4的子集,他们都是用32位来编码,utf-32 是只在0到10FFFF的字碼空間。

utf-16 是 ucs2的父集, utf 16,在0到65535,用16位表示,大于65535,用32位。0到65535部分就是ucs2.


目前实际用的Unicode版本是ucs2, 也就是一个字符2字节,16位。


utf8用1到4个字节来表示字符。


ansi的简体中文对应于gb2312, 一字节或者二字节。


gb2312, gbk 字符有一字节和双字节编码,00–7F范围内是一位,和ASCII保持一致,


GB 18030 采用多字节编码,每个字可以由1个、2个或4个字节组成。与GB 2312-1980完全兼容,与GBK基本兼容,支持GB 13000及Unicode的全部统一汉字


unicode是标准,utf 8, utf 16, utf 32, ucs2, ucs4 都是实现,都是具体的编码方式。一般说按照unicode编码,是指用ucs2.


UTF-8
  UTF-8以字节为单位对Unicode进行编码。从Unicode到UTF-8的编码方式如下:
  Unicode编码(16进制) ║ UTF-8 字节流(二进制)
  000000 - 00007F ║ 0xxxxxxx
  000080 - 0007FF ║ 110xxxxx 10xxxxxx
  000800 - 00FFFF ║ 1110xxxx 10xxxxxx 10xxxxxx
  010000 - 10FFFF ║ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

猜你喜欢

转载自able0001.iteye.com/blog/1113060
今日推荐