字符编码概述:下表,按照固定长编码和可变长编码进行分类。GB2312和GBK如果从与ASCII码兼容的角度来讲,也可以认为是可变长编码。对于ASCII码以外的文字都是2字节编码。UCS和UNICODE在1991年已经统一
ASCII编码:前32个字符(0x00 ~ 0x1f)为控制字符;33到126(0x20 ~ 0x7e)为英文字符;第127个(0x7f)字符为控制字符
0x00 ~ 0x1f | 控制字符 |
0x20 ~ 0x7e | 英文字符 |
0x7f | 控制字符(del) |
ANSI的扩展字符集ISO8859-1编码:
0x00 ~ 0x1f | 未定义 |
0x20 ~ 0x7e | 英文字符 |
0x7f, 0x80 ~0x9f | 未定义 |
Oxa0 ~ 0xff | 扩展字符(西欧文字或称Latin-1) |
GB2312编码:
ASCII码单字节 |
|
A1A0....A9E0 | (全角)英文字符,数字,特殊字符等 其中包括日文假名 |
A9F0 ….AFF0 | 未定义 |
B0A0.... D7F0 | 第一级常用汉字,常用汉字3775个 |
D8A0.... F7F0 | 第二级常用汉字,常用汉字3008个 |
F8A0….FEF0 | 未定义 |
GBK编码:包含21003个汉字,包含了ISO 10646中的全部中日韩汉字,简、繁体字融于一
8140.... A19F | 很多特殊文字及繁体字 |
A1A0….. FEF0 | GB2312编码 |
GB2312, GBK与ASCII兼容但是与UNICODE编码不兼容,需要装换。
ISO-10646即UNICODE编码:Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字,UTF-8.UTF-16、UTF-32都是通过这种方式编码的。
UTF-8编码:UNICODE编码最少需要2个字节空间来存储文字,对于ASCII表示的字符使用UNICODE编码显然低效,解决这一问题诞生了UTF-8,UTF-8的详细介绍参见 http://zh.wikipedia.org/wiki/UTF-8,其与UNICODE的对照参见http://www.utf8-chartable.de/,简体中文对照表参见http://www.ansell-uebersetzungen.com/gbuni.html