字符集编码

字符集

字符- 只有名字和显示的样式。例如:COMMA ,
字符码位(交换码)-每个字符定义一个唯一的数字表示(码位)。例如:0x2C ,
字符编码(内码)- 针对一套字符码位的映射算法,以在计算机内部用字节序列表示每个码位。

ASCII字符集
  主要针对英语使用
  每个字符的定义,字符码位和字符编码完全相同,最简单的映射关系

GB2312字符集
每个汉字或符号用两个字节来表示。分区(十进制)处理:
01-09区为特殊符号。
10-15区未有编码
16-55区为一级汉字,按拼音排序。
56-87区为二级汉字,按部首/笔画排序。
88-94区则未有编码
高位字节使用0xA1-0xF7(把01-87区的区号加上0xA0),低位字节使用0xA1-0xFE(把01-94加上0xA0)。
  例如:“啊”字是GB2312之中的第一个汉字,它的区位码是1601,会以0xB0A1储存。
          (因为16+0xA0=0xB0  01+0xA0=0xA1)

ISO8895字符集
  主要针对拉丁字母的语言

GBK
汉字内码扩展规范。
最初是MS对GB2312的扩展,得到国家认可但不是国家标准。
包括了原GB2312编码,编码范围是:高字节0x81-0xFE,低字节0x40-0xFE同时不包括

0x7F
对比
GBK:       0x81-0xFE, 0x40-0xFE,  -0x7F
GB2312:    0xA1-0xF7, 0xA1-0xFE


GB18030
国家标准
双字节部分完全采用GBK的内码系统,然后做了四字节扩展,四个字节的编码空间依次

是:0x81到0xFE,0x30到0x39,0x81到0xFE,0x30到0x39。总共1,587,600个码位
GB 18030-2000版本收录了全部27,484个CJK统一汉字
在编码体系上,GB18030统一了内码和交换码的概念
取代GBK


GB13000
与Unicode相同


ISO10646和Unicode
使各种语言的字符在编码上有与ASCII码相同地位,可以同时处理各国语言
ISO10646是国际标准,Unicode是行业标准
两者完全兼容
通用多八位编码字符集(UCS):四个八位位组的四维编码空间,分别表示组/面/行/位

即UCS-4形式
UCS-2就是00组中的00平面,即ISO 10646.1的基本多文种平面(BMP)。
为了与ASCII码兼容,推荐格式UTF-8:采用1-6个八位位组表示UCS中的一个字符

Unicode由the Unicode Consortium制定,兼容ISO10646
Unicode原始为16位编码,现在扩充为0--10FFFF

原文地址:https://www.cnblogs.com/zhyryxz/p/1708478.html