字符编码
1. ASCII
它用7个二进制位来表示, 27=128个字符。最高位一个用于扩展。
ASCII码对照表
下表列出了字符集中的 0 - 127。
代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 |
---|---|---|---|---|---|---|---|
0 | 32 | [空格] | 64 | @ | 96 | ` | |
1 | 33 | ! | 65 | A | 97 | a | |
2 | 34 | " | 66 | B | 98 | b | |
3 | 35 | # | 67 | C | 99 | c | |
4 | 36 | $ | 68 | D | 100 | d | |
5 | 37 | % | 69 | E | 101 | e | |
6 | 38 | & | 70 | F | 102 | f | |
7 | 39 | ' | 71 | G | 103 | g | |
8 | ** | 40 | ( | 72 | H | 104 | h |
9 | ** | 41 | ) | 73 | I | 105 | i |
10 | ** | 42 | * | 74 | J | 106 | j |
11 | 43 | + | 75 | K | 107 | k | |
12 | 44 | , | 76 | L | 108 | l | |
13 | ** | 45 | - | 77 | M | 109 | m |
14 | 46 | . | 78 | N | 110 | n | |
15 | | 47 | / | 79 | O | 111 | o |
16 | | 48 | 0 | 80 | P | 112 | p |
17 | | 49 | 1 | 81 | Q | 113 | q |
18 | | 50 | 2 | 82 | R | 114 | r |
19 | 51 | 3 | 83 | S | 115 | s | |
20 | 52 | 4 | 84 | T | 116 | t | |
21 | 53 | 5 | 85 | U | 117 | u | |
22 | | 54 | 6 | 86 | V | 118 | v |
23 | | 55 | 7 | 87 | W | 119 | w |
24 | | 56 | 8 | 88 | X | 120 | x |
25 | | 57 | 9 | 89 | Y | 121 | y |
26 | | 58 | : | 90 | Z | 122 | z |
27 | 59 | ; | 91 | [ | 123 | { | |
28 | | 60 | < | 92 | \ | 124 | | |
29 | | 61 | = | 93 | ] | 125 | } |
30 | - | 62 | > | 94 | ^ | 126 | ~ |
31 | 63 | ? | 95 | _ | 127 | |
下表列出了字符集中的 128 - 255。
代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 |
---|---|---|---|---|---|---|---|
128 | € | 160 | [空格] | 192 | À | 224 | à |
129 | | 161 | ¡ | 193 | Á | 225 | á |
130 | ‚ | 162 | ¢ | 194 | Â | 226 | â |
131 | ƒ | 163 | £ | 195 | Ã | 227 | ã |
132 | „ | 164 | ¤ | 196 | Ä | 228 | ä |
133 | … | 165 | ¥ | 197 | Å | 229 | å |
134 | † | 166 | ¦ | 198 | Æ | 230 | æ |
135 | ‡ | 167 | § | 199 | Ç | 231 | ç |
136 | ˆ | 168 | ¨ | 200 | È | 231 | ç |
137 | ‰ | 169 | © | 201 | É | 232 | è |
138 | Š | 170 | ª | 202 | Ê | 233 | é |
139 | ‹ | 171 | « | 203 | Ë | 234 | ê |
140 | Œ | 172 | ¬ | 204 | Ì | 235 | ë |
141 | | 173 | | 205 | Í | 236 | ì |
142 | Ž | 174 | ® | 206 | Î | 237 | í |
143 | | 175 | ¯ | 207 | Ï | 238 | î |
144 | | 176 | ° | 208 | Ð | 239 | ï |
145 | ‘ | 177 | ± | 209 | Ñ | 240 | ð |
146 | ’ | 178 | ² | 210 | Ò | 241 | ñ |
147 | “ | 179 | ³ | 211 | Ó | 242 | ò |
148 | ” | 180 | ´ | 212 | Ô | 243 | ó |
149 | • | 181 | µ | 213 | Õ | 244 | ô |
150 | – | 182 | ¶ | 214 | Ö | 245 | õ |
151 | — | 183 | · | 215 | × | 246 | ö |
152 | ˜ | 184 | ¸ | 216 | Ø | 247 | ÷ |
153 | ™ | 185 | ¹ | 217 | Ù | 248 | ø |
154 | š | 186 | º | 218 | Ú | 249 | ù |
155 | › | 187 | » | 219 | Û | 250 | ú |
156 | œ | 188 | ¼ | 220 | Ü | 251 | û |
157 | | 189 | ½ | 221 | Ý | 252 | ü |
158 | ž | 190 | ¾ | 222 | Þ | 253 | ý |
159 | Ÿ | 191 | ¿ | 223 | ß | 254 | þ |
2.iso8859-1
属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。比如,字母'a'的编码为0x61=97。
3。GB2312(1980年)
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从 A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。GB2312-80中共收录了7545个字符,用两个字节编码一个字符。每个字符最高位为0。GB2312-80编码简称国标码。
4.GBK
GBK编码(Chinese Internal Code Specification)是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。gbk编码能够用来同时表示繁体字和简体字,而gb2312只能表示简体字,gbk是兼容gb2312编码的。该编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。Windows95/98简体中文版的字库表层编码就采用的是GBK,通过GBK与UCS之间一一对应的码表与底层字库联系。
双字节编码,GB2312-80的扩充,在码位上和GB2312-80兼容
范围:8140~FEFE(剔除xx7F)共23940个码位
包含21003个汉字,包含了ISO/IEC 10646-1中的全部中日韩汉字
5. BIG5编码
是目前台湾、香港地区普遍使用的一种繁体汉字的编码标准,包括440个符号,一级汉字5401个、二级汉字7652个,共计13060个汉字。BIG5又称大五码或五大码
Big5字符集共收录13,053个中文字,该字符集在中国台湾使用。耐人寻味的是该字符集重复地收录了两个相同的字:“兀”(0xA461及0xC94A)、“嗀”(0xDCD1及0xDDFC)。
Big5码使用了双字节储存方法,以两个字节来编码一个字。第一个字节称为“高位字节”,第二个字节称为“低位字节”。高位字节的编码范围0xA1-0xF9,低位字节的编码范围0x40-0x7E及0xA1-0xFE。
6.UNICODE
亚洲和非洲语言并不能被8位字符集所支持。仅汉语(或pictograms)字母表就有80000以上个字符。但是把汉语、日语和越南语的一些相似的字符结合起来,在不同的语言里,使不同的字符代表不同的字,这样只用2个字节就可以编码地球上几乎所有地区的文字。因此,创建了UNICODE编码。它通过增加一个高字节对ISO Latin-1字符集进行扩展,当这些高字节位为0时,低字节就是ISO Latin-1字符。UNICODE支持欧洲、非洲、中东、亚洲(包括统一标准的东亚像形汉字和韩国像形文字)。
7.utf-8
utf-8不是说8位来存储。而是说多了一位来存储非英文字符的信息。而uti-16,确真是的16位来存储信息。英文和非英文统一16位。
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:
浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器: