字符编码

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(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到4个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
创建的原因应该是英文国家不想用unicode,英文可以用1个字节表示,不想用2个字节的unicode,来表示英文,所以出来一个可变长的。可兼容acscii。
好像linux内核编码就是utf-8,英文系统会更快,非英文就比较慢了, 而微软是UNICODE,英文和非英文都是一样2字节,会稍慢。但是表现层所有系统都是可修改的。

 

 
所以在window中是这样的。 

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:

rw-file-utf-8

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器:

web-utf-8

 

posted @ 2010-01-07 10:35  琴鸟  阅读(3364)  评论(0编辑  收藏  举报