一、ASCII码
ASCII 是用来表示英文字符的一种编码规范。每个ASCII字符占用1 个字节,因此,ASCII 编码可以表示的最大字符数是255(00H—FFH)。其中最高位为1 的另128 个字符(80H—FFH)被称为“扩展ASCII”,一般用来存放英文的制表符、部分音标字符等等的一些其它符号。对于英文字符来说,255可以完整的表达包括字母、数字以及符号在内的大部分日常字字符,但是对于中文等比较复杂的语言,255个字符显然不够用。于是,各个国家纷纷制定了自己的文字编码规范,例如中文的文字编码规范叫做“GB2312—80”。
二、Unicode
Unicode给每个字符提供了一个唯一的数字,不论是什么平台、不论是什么程序、不论什么语言。Unicode标准已经被这些工业界的领导们所采用,例 如:Apple, HP, IBM, JustSystem, Microsoft等。最新的标准都需要Unicode,例如XML, Java, ECMAScript (JavaScript)等,并且,Unicode是实现ISO/IEC 10646的正规方式。许多操作系统、所有最新的浏览器和许多其他产品都支持它 。Unicode标准的出现和支持它工具的存在,是近来全球软件技术最重要的发展趋势。Unicode使单一软件产品或单一网站能够贯穿多个平台、语言和国家,而不需要重建。它可将数据传输到许多不同的系统,而无损坏。
三、UTF-8
Unicode 字符集为每一个字符分配一个码位,例如「知」的码位是 30693,记作 U+77E5(30693 的十六进制为 0x77E5)。UTF-8 顾名思义,是一套以 8 位为一个编码单位的可变长编码。会将一个码位编码为 1 到 4 个字节:
U+ 0000 ~ U+ 007F: 0XXXXXXX
U+ 0080 ~ U+ 07FF: 110XXXXX 10XXXXXX
U+ 0800 ~ U+ FFFF: 1110XXXX 10XXXXXX 10XXXXXX
U+10000 ~ U+1FFFF: 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX