众所周知,机器语所有的信息最终都是一个二进制串,每一个二进制位(bit)0和1两种状态表示。
而字符编码是为方便对每个字符信息一个集合体,以便于编程人员的对字符显示后期处理。为了方便在不同平台的信息传递的准确性,所以产生统一字符编码的规范编码。
在计算机技术发展的早期,如ASCII(1963年)和EBCDIC(1964年)这样的字符集逐渐成为标准。但这些字符集的局限很快就变得明显,于是人们开发了许多方法来扩展它们。对于支持包括东亚CJK字符家族在内的写作系统的要求能支持更大量的字符,并且需要一种系统而不是临时的方法实现这些字符的编码。
编码名称 | 字节数 范围 | 时间 | 说明 |
---|---|---|---|
ASCII | (1 byte) 00 - 7F |
1961 年提出 1967 年发表 1967 年完善 |
这套编码规则是由美国定制,一共规定了128个字符的编码,其中有 96 个可打印 字符,包括常用的字母、数字、标点符号等,另外包括 32 个控制字符。 0~31 控件字符 48~57 为数字 65~90 97~122 分别为大写字母和小写字母 相差32 |
ISO-8859-1 EBCDIC |
(1 byte) 00 - FF |
1964 年 | 这套编码规则由ISO组织制定,是 ASCII 的扩展字符编码,是对 ASCII 后 127~255 范围进行编码。 |
ANSI MBCS |
(2 byte) 0000-FFFF |
无论是ASCII码还是ISO-8859-1码,都无法对拥有几万个的汉字进行编码,于是产生 了用于显示本国语言,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称 为 ANSI 编码在简体中文系统下,ANSI 编码代表 GB-2312 编码,在日文操作系统下, ANSI 编码代表 JIS 编码。 |
|
GB-2312 GB-2312-80 |
(2 byte) A1A1-FEFE |
1980 年发布 1981 年使用 |
GB2312也是ANSI编码里的一种,对ANSI编码最初始的ASCII编码进行扩充,为了满 足国内在计算机中使用汉字的需要,中国国家标准总局发布了一系列的汉字字符集国家标 准编码,统称为GB码,或国标码。 |
GB K | (2 byte) 8140-FEFE |
GBK即汉字内码扩展规范,K为扩展的汉语拼音中“扩”字的声母。英文全称(Chinese Internal Code Specification)。GBK编码标准兼容GB2312,共收录汉字21003个、符号 883个,并提供1894个造字码位,简、繁体字融于一库 |
|
GB-18030 | (1~4 byte) | 2000 年发布 | GB18030全称汉字内码扩展规范,是现在最新的内码字集于2000年发布,并于200 1年强制执行,包含了中国大部分少数民族的语言字符,收录汉字数超过70000余个 |
Big-5 | (2 byte) 8140-FEFE |
1984 年发布 | 由台湾五大厂商宏碁、神通、佳佳、零壹以及大众一同制定了一种繁体中文编码方 案,因其来源被称为五大码,英文写作Big5,后来按英文翻译回汉字后,普遍被称为大 五码。是在台湾、香港与澳门地区,使用的是繁体中文字符集。 |
Unicode | (2 byte) 0000-FFFF |
所有字符都转为16位。为了解决各国字符编码的兼容性,称为万国码。缺点效率不 高,浪费内存。 |
|
UTF-16 | (2 byte) | UTF-16是UNICODE的具体实现,16即16位,UTF-16即是这个来由,定义了 UNICODE字符在计算机中的存储方式,UTF-16同样使用了两个字节来表示任何字符, 这样使得操作字符串非常高效,这也是java把UTF-16作为字符在内存中存储的格式的 重要原因。 |
|
UTF-8 | (1~6 byte) | 优化 Unicode ,UTF-16可以根据不同的符号自动选择编码的长短。比如英文字母可 以只用1个字节就够了。 |
|
UTF-7 | |||
Bin (二进制) |
Dec (十进制) |
Hex (十六进制) |
缩写/字符 | 字 符 | Bin (二进制) |
Dec (十进制) |
Hex (十六进制) |
缩写 | 字符 |
---|---|---|---|---|---|---|---|---|---|
0000 0000 | 0 | 00 | NULL | 空字符 | 0000 0000 | 69 | 45 | E | 大写字母E |
0000 0001 | 1 | 01 | SOH |
标题开始 | 0000 0000 | 70 | 46 | F | 大写字母F |
0000 0010 | 2 | 02 | STX |
正文开始 | 0100 0111 | 71 | 47 | G | 大写字母G |
0000 0011 | 3 | 03 | ETX |
正文结束 | 0100 1000 | 72 | 48 | H | 大写字母H |
0000 0100 | 4 |
04 | EOT |
传输结束 | 0100 1001 | 73 | 49 | I | 大写字母I |
0000 0101 | 5 | 05 | ENQ |
请求 | 0100 1010 | 74 | 4A | J | 大写字母J |
0000 0110 | 6 | 06 | ACK |
收到通知 | 0100 1011 | 75 | 4B | K | 大写字母K |
0000 0111 | 7 | 07 | BEL |
响铃 | 0100 1100 | 76 | 4C | L | 大写字母L |
0000 1000 | 8 | 08 | BS |
退格 | 0100 1101 | 77 | 4D | M | 大写字母M |
0000 1001 | 9 | 09 | HT |
水平制表符 | 0100 1110 | 78 | 4E | N | 大写字母N |
0000 1010 | 10 | 0A | LF |
换行键 | 0100 1111 | 79 | 4F | O | 大写字母O |
0000 1011 | 11 | 0B | TV |
垂直制表符 | 0101 0000 | 80 | 50 | P | 大写字母P |
0000 1100 | 12 | 0C | FF |
换页建 | 0101 0001 | 81 | 51 | Q | 大写字母Q |
0000 1101 | 13 | 0D | CR |
回车键 | 0101 0010 | 82 | 52 | R | 大写字母R |
0000 1110 | 14 | 0E | SO |
不用切换 | 0101 0011 | 83 | 53 | S | 大写字母S |
0000 1111 | 15 | 0F | SI |
启动切换 | 0101 0100 | 84 | 54 | Y | 大写字母Y |
0001 0000 | 16 | 10 | DLE |
数据链路转义 | 0101 0101 | 85 | 55 | U | 大写字母U |
0001 0001 | 17 | 11 | DC1 |
设备控制1 | 0101 0110 | 86 | 56 | V | 大写字母V |
0001 0010 | 18 | 12 | DC2 |
设备控制2 | 0101 0111 | 87 | 57 | W | 大写字母W |
0001 0011 | 19 | 13 | DC3 |
设备控制3 | 0101 1000 | 88 | 58 | X | 大写字母X |
0001 0100 | 20 | 14 | DC4 |
设备控制4 | 0101 1001 | 89 | 59 | Y | 大写字母Y |
0001 0101 | 21 | 15 | NAK |
拒绝接收 | 0101 1010 | 90 | 5A | Z | 大写字母Z |
0001 0110 | 22 | 16 | SYN |
同步空闲 | 0101 1011 | 91 | 5B | [ | 开方括号 |
0001 0111 | 23 | 17 | ETB |
结束传输块 | 0101 1100 | 92 | 5C | \ | 反斜杠 |
0001 1000 | 24 | 18 | CAN |
取消 | 0101 1101 | 93 | 5D | ] | 闭方括号 |
0001 1001 | 25 | 19 | EM |
媒介结束 | 0101 1110 | 94 | 5E | ^ | 脱字符 |
0001 1010 | 26 | 1A | SUB |
代替 | 0101 1111 | 95 | 5F | _ | 下划线 |
0001 1011 | 27 | 1B | ESC |
换码(溢出) | 0110 0000 | 96 | 60 | ` | 开单引号 |
0001 1100 | 28 | 1C | FS |
文件分隔符 | 0110 0001 | 97 | 61 | a | 小写字母a |
0001 1101 | 29 | 1D | GS |
分组符 | 0110 0010 | 98 | 62 | b | 小写字母b |
0001 1110 | 30 | 1E | RS |
记录分隔符 | 0110 0011 | 99 | 63 | c | 小写字母c |
0001 1111 | 31 | 1F | US |
单元分隔符 | 0110 0100 | 100 | 64 | d | 小写字母d |
0010 0000 | 32 | 20 | (space) |
空格 | 0110 0101 | 101 | 65 | e | 小写字母e |
0010 0001 | 33 | 21 | ! | 叹号 | 0110 0110 | 102 | 66 | f | 小写字母f |
0010 0010 | 34 | 22 | " | 双引号 | 0110 0111 | 103 | 67 | g | 小写字母g |
0010 0011 | 35 | 23 | # | 井号 | 0110 1000 | 104 | 68 | h | 小写字母h |
0010 0100 | 36 | 24 | $ | 美元号 | 0110 1001 | 105 | 69 | i | 小写字母i |
0010 0101 | 37 | 25 | % | 百分号 | 0110 1010 | 106 | 6A | j | 小写字母j |
0010 0110 | 38 | 26 | & | 和号 | 0110 1011 | 107 | 6B | k | 小写字母k |
0010 0111 | 39 | 27 | ' | 闭单引号 | 0110 1100 | 108 | 6C | l | 小写字母l |
0010 1000 | 40 | 28 | ( | 开括号 | 0110 1101 | 109 | 6D | m | 小写字母m |
0010 1001 | 41 | 29 | ) | 闭括号 | 0110 1110 | 110 | 6E | n | 小写字母n |
0010 1010 | 42 | 2A | * | 星号 | 0110 1111 | 111 | 6F | o | 小写字母o |
0010 1011 | 43 | 2B | + | 加号 | 0111 0000 | 112 | 70 | p | 小写字母p |
0010 1100 | 44 | 2C | , | 逗号 | 0111 0001 | 113 | 71 | q | 小写字母q |
0010 1101 | 45 | 2D | - | 减号/破折号 | 0111 0010 | 114 | 72 | r | 小写字母r |
0010 1110 | 46 | 2E | . | 句号 | 0111 0011 | 115 | 73 | s | 小写字母s |
0010 1111 | 47 | 2F | / | 斜杠 | 0111 0100 | 116 | 74 | t | 小写字母t |
0011 0000 | 48 | 30 | 0 | 数字0 | 0111 0101 | 117 | 75 | u | 小写字母u |
0011 0001 | 49 | 31 | 1 | 数字1 | 0111 0110 | 118 | 76 | v | 小写字母v |
0011 0010 | 50 | 32 | 2 | 数字2 | 0111 0111 | 119 | 77 | w | 小写字母w |
0011 0011 | 51 | 33 | 3 | 数字3 | 0111 1000 | 120 | 78 | x | 小写字母x |
0011 0100 | 52 | 34 | 4 | 数字4 | 0111 1001 | 121 | 79 | y | 小写字母y |
0011 0101 | 53 | 35 | 5 | 数字5 | 0111 1010 | 122 | 7A | z | 小写字母z |
0011 0110 | 54 | 36 | 6 | 数字6 | 0111 1011 | 123 | 7B | { | 开花括号 |
0011 0111 | 55 | 37 | 7 | 数字7 | 0111 1100 | 124 | 7C | | | 垂线 |
0011 1000 | 56 | 38 | 8 | 数字8 | 0111 1101 | 125 | 7D | } | 闭花括号 |
0011 1001 | 57 | 39 | 9 | 数字9 | 0111 1110 | 126 | 7E | ~ | 波浪线 |
0011 1010 | 58 | 3A | : | 冒号 | 0111 1111 | 127 | 7F | DEL | 删除 |
0011 1011 | 59 | 3B | ; | 分号 | |||||
0011 1100 | 60 | 3C | < | 大于 | |||||
0011 1101 | 61 | 3D | = | 等号 | |||||
0011 1110 | 62 | 3E | > | 小于 | |||||
0011 1111 | 63 | 3F | ? | 问号 | |||||
0100 0000 | 64 | 40 | @ | 电子邮件符号 | |||||
0100 0001 | 65 | 41 | A | 大写字母A | |||||
0100 0010 | 66 | 42 | B | 大写字母B | |||||
0100 0011 | 67 | 43 | C | 大写字母C | |||||
0100 0100 | 68 | 44 | D | 大写字母D |
ISO-8859-1 | _0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
00 ~ 7 F 区间 | 为 ASCII 编码 Hex:00 ~ 7 F Dec:000 ~ 127 | |||||||||||||||
80 ~ 9 F 区间 | null Hex:80 ~ 9 F Dec:128 ~ 159 | |||||||||||||||
A 0~ AF 区间 | SP | ¡ | ¢ | £ | ¤ | ¥ | ¦ | § | ¨ | © | ª | « | ¬ | ® | ¯ | |
Dec | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 |
B 0~ BF 区间 | ° | ± | ² | ³ | ´ | µ | ¶ | · | ¸ | ¹ | º | » | ¼ | ½ | ¾ | ¿ |
Dec | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 |
C 0~ CF 区间 | À | Á | Â | Ã | Ä | Å | Æ | Ç | È | É | Ê | Ë | Ì | Í | Î | Ï |
Dec | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 |
D 0~ DF 区间 | Ð | Ñ | Ò | Ó | Ô | Õ | Ö | × | Ø | Ù | Ú | Û | Ü | Ý | Þ | ß |
Dec | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 |
E 0~ EF 区间 | à | á | â | ã | ä | å | æ | ç | è | é | ê | ë | ì | í | î | ï |
Dec | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 |
F 0~ FF 区间 | ð | ñ | ò | ó | ô | õ | ö | ÷ | ø | ù | ú | û | ü | ý | þ | ÿ |
Dec | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 |
GB2312编码是第一个汉字编码国家标准,由中国国家标准总局1980年发布,1981年5月1日开始使用。GB2312编码共收录汉字6763个,其中一级汉字3755个,二级汉字3008个。同时,GB2312编码收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。各区具体说明如下:更详细信息:点击这里
GB2312规定对收录的每个字符采用两个字节表示,第一个字节为“高字节”,对应94个区;第二个字节为“低字节”,对应94个位。所以它的区位码范围是:0101-9494。区号和位号分别加上0xA0就是GB2312编码。例如最后一个码位是9494,区号和位号分别转换成十六进制是5E5E,0x5E+0xA0=0xFE,所以该码位的GB2312编码是FEFE。
GB2312编码范围: A1A1-FEFE,其中 汉字的编码范围为 B0A1-F7FE,第一字节0xB0-0xF7(对应区号:Dec:16-87),第二个字节0xA1-0xFE(对应位号:Dec:01-94)。A1A1-A9FE 01 - 09 区收录除汉字外的682个字符,有164个空位(9 * 94 - 682)。
AAA1-AFFE 10 - 15 区为空白区,没有使用。
B0A1-D7FE 16 - 55 区收录3755个一级汉字 ( 简体 ),按拼音顺序排序。
D8A1-F7FE 56 - 87 区收录3008个二级汉字 ( 简体 ),按部首/笔画顺序排序。
F8A1-FEFE 88 - 94 区为空白区,没有使用。
所以每区存在空白区 是: 在十六进制中 00-A0 区域是空白的 使用区位是 A1-FE
区,位转换流程图具体:请点击这里查看;
BIG 5 是繁体中文字符集编码标准,共收录13060个中文字,其中有二字为重复编码。分别:兀(A461及C94A),嗀(DCD1及DDFC)。
BIG5采用双字节编码,使用两个字节来表示一个字符。高位字节使用了0x81-0xFE,低位字节使用了0x40-0x7E,及0xA1-0xFE。在BIG5的分区中:更详细信息:点击这里
分布信息如下:
8140-A0FE 保留给使用者自定义字符(造字区)
A140-A3BF 标点符号、希腊字母及特殊符号。其中在 A259-A261 收录了繁体度量衡单位用字:兙兛兞兝兡兣嗧瓩糎。
A3C0-A3FE 保留。此区没有开放作造字区用。
A440-C67E 常用汉字,先按笔划再按部首排序。
C6A1-F9DC 其它汉字。
F9DD-F9FE 制表符。
GBK 亦采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。
分布信息如下:更详细信息:点击这里
区 | 位 _ 代表每区的值 列 81和88区各A1-FE位(范围) 可写成 81-88 _A1-FE | |
---|---|---|
8 1 - A 0 | 8140-813F,82-A0 _00-3F > NULL | |
_40-FE 收录 GB 13000.1 中的 CJK 汉字 6080 个。 | ||
A 1 - A 7 | _00-A0 null(自定义) | |
_A1-FE (A100-A9FE) 收录GB2312 所有图形字符,以及小罗马和GB12345累计符号 717 个。 |
||
A 8 - A 9 | _00-3F null | |
_40-A0 收录 BIG 5 非汉字字符 共166个 字符“〇”排于此 |
||
_A1-FE (A1A1-A9FE) 收录GB2312 所有图形字符,以及小罗马和GB12345累计符号 717 个。 |
||
A A - A F | _00-3F null |
|
_40-A0 (AA40-FEFE)收录 CJK 汉字和增补的汉字 8160 个。CJK 汉字在前,按 UCS 代码大小排列; 增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。 |
||
_A1-FE null(自定义) |
||
B 0 - F 7 | _00-3F null |
|
_40-A0 (AA40-FEFE)收录 CJK 汉字和增补的汉字 8160 个。 | ||
_40-A0 (AA40-FEFE)收录 CJK 汉字和增补的汉字 8160 个。CJK 汉字在前,按 UCS 代码大小排列; 增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。 |
||
F 8 - F E | _00-3F null | |
_40-A0 (AA40-FEFE)收录 CJK 汉字和增补的汉字 8160 个。CJK 汉字在前,按 UCS 代码大小排列; 增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。 |
||
_A1-FE null(自定义) |