- ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。ASCII 编码 只能表示一些英文字母和数字,满足不了不使用英文的国家的字符。ASCII编码就是用1个字节来存储字符。
- Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。因为世界国家很多,每个国家都定义一套自己的编码标准,结果相互之间谁也不懂谁的编码,就无法进行很好的沟通交流,所以及时的出现了一个组织ISO(国际标准化组织)决定定义一套编码方案来解决所有国家的编码问题,这个新的编码方案就叫做Unicode。Unicode 没有规定字符对应的二进制码如何存储。以汉字“汉”为例,它的 Unicode码点1 是 0x6c49,对应的二进制数是 110110001001001,二进制数有 15 位,这也就说明了它至少需要 2 个字节来表示。可以想象,在 Unicode 字典中往后的字符可能就需要 3 个字节或者 4 个字节,甚至更多字节来表示了。
- UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。Unicode 是「字符集」 字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)。UTF-8 是「编码规则」 将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)。UTF-8 最大的一个特点, 就是它是一种变长的编码方式. 它可以使用1~4个字节表示一个符号, 根据不同的符号而变化字节长度。UTF-8以8位(也就是一个字节)为一个单元进行处理, UTF-16 以16位(两个字节)为一个单元进行处理,也就是如果2个字节不够,则启用4个字节,不能用3个字节,因为以两个字节为一个单元; UTF-32则以32位也就是4个字节为一个单元进行处理,如果4个字节不够用,则启用8个字节来处理。
- GBK全称《汉字内码扩展规范》(GBK即“国标”、“扩展”汉语拼音的第一个字母,英文名称:Chinese Internal Code Specification) ,中华人民共和国全国信息技术标准化技术委员会1995年12月1日制订。GBK 是在 GB2312 基础上扩容后兼容 GB2312 的标准,它用2个字节代表一个字符。它既有字符集的定义又有具体的存储实现。
- 字符集和字符编码:字符集是很多个字符的集合,例如 GB2312 是简体中文的字符集,它收录了六千多个常用的简体汉字及一些符号,数字,拼音等字符。字符编码是 字符集的一种实现方式,把字符集中的字符映射为特定的字节或字节序列,它是一种规则比如:Unicode 只是字符集,UTF-8、UTF-16、UTF-32 才是真正的字符编码规则。