字符集ASCII、GBK、UNICODE、UTF在储存字符时的区别

时间:2021-01-17 20:21:19

  ASCII编码(American Standard Code for Information Interchange,美国信息互换标准代码),使用127个8进制字节表示英文和半角字符。
  GBK (Guo Biao Kuozhan,国标扩展),当在ASCII 码的范围时,就用一个字节表示,然后每两个字节表示一个汉语和全角字符。
  UCS(Universal Multiple-Octet Coded Character Set)俗称UNICODE,所有的字符都是两个字节。ASCII字符前面全部补零,其他字符重新编码。
  UTF(UCS Transfer Format,万国码),当在ASCII 码的范围时,就用一个字节表示,一个中 文字符占3个字节,从unicode到uft-8并不是直接的对应。

中英文各字符集十进制编码对照表

字符 ASCII GBK UNICODE UTF8
a 97 97 97 97
45218 38463 15308991

中英文各字符集二进制编码对照表

字符 ASCII GBK UNICODE UTF8
a 01100001 01100001 0000000001100001 01100001
1011000010100010 1001011000111111 111010011001100010111111

  从第一个表中,我们可以看出英文字符(更准确的来说是ASCII字符集的字符)编码顺序没有改变,中文字符则都做了从新的编排。
  从第二个表中,我们很容易看出,四种字符编码集对英文字符的处理除了“UNICODE”用两个字节,其他都是使用一个字节来表示。对于中文字符,“GBK”和“UNICODE”使用两个字节来表示,UTF8使用三个字节来表示。