04 Jan 2015 11:44 +0000

What is ASCII, Latin-1, GB2312, Unicode and UTF-8

 

ASCII (American Standard Code for Information Interchange)

ASCII 码指包括 26 个英文字母在内的 128 个字符编码,用 7 位二进制数(0-127)一一对应表示,如 M 的 ASCII 编码为 01001110

Latin-1

部分欧洲国家在 ASCII 的基础上,利用一个字节(8 位)中闲置的最高位将其扩展至 256 个字符。

GB2312 (国标 2312)

国标 2312 是 ASCII 的中文扩展,保留原有字符编码(半角字符),同时增加了包括汉字字符在内的“全角字符”,用两个字节表示。

Unicode

Unicode 是几乎包含全世界所有符号的编码表,用于统一字符的编码方式,但 Unicode 仅限于符号集,不是具体的编码方式,意味着 Unicode 可以有多种的实现方式,如 UTF-8。

UTF-8

UTF-8 编码是 Unicode 的一种具体实现方式,使用了变长编码方式,用 1-4 个字节表示一个字符。编码方式如下:

对 1 个字节:第一位 0,后 7 位表示 ASCII 字符,实际上和 ASCII 相同;

对多个字节(n):第 1 个字节前 n 位为 1,n+1 位为 0,后续字节前两位为 10,如三位字节表示为 1110xxxx 10xxxxxx 10xxxxxx,其中 "x" 用 Unicode 编码填充,如汉字"严"的 Unicode 编码为 100111000100101,则"严"的 UTF-8 编码为 "11100100 10111000 10100101"


Loading comments...