GBK字元集編碼
GBK 編碼是GB2312編碼的超集,向下完全相容GB2312,同時GBK收錄了Unicode基本多文種平面中的所有CJK漢字。同 GB2312一樣,GBK也支援希臘字母、日文假名字母、俄語字母等字元,但不支援韓語中的表音字元(非漢字字元)。GBK還收錄了GB2312不包含的 漢字部首符号、豎排标點符号等字元。
GBK的整體編碼範圍是為:高位元組範圍是0×81-0xFE,低位元組範圍是0x40-7E和0x80-0xFE,不包括低位元組是0×7F的組合。
低位元組是0x40-0x7E的GBK字元有一定特殊性,因為這些字元占用了ASCII碼的位置,這樣會給一些系統帶來麻煩。
有些系統中用0x40-0x7E中的字元(如“|”)做特殊符号,在定位這些符号時又沒有判斷這些符号是不是屬于某個 GBK字元的低位元組,這樣就會造成錯誤判斷。在支援GB2312的環境下就不存在這個問題。需要注意的是支援GBK的環境中小于0x80的某個位元組未必就 是ASCII符号;另外就是最好選用小于0×40的ASCII符号做一些特殊符号,這樣就可以快速定位,且不用擔心是某個漢字的另一半。Big5編碼中也 存在相應問題。
CP936和GBK的有些許差别,絕大多數情況下可以把CP936當作GBK的别名。
GB18030字元集編碼
GB18030編碼向下相容GBK和GB2312,相容的含義是不僅字元相容,而且相同字元的編碼也相同。GB18030收錄了所有Unicode3.1中的字元,包括中國少數民族字元,GBK不支援的韓文字元等等,也可以說是世界大多民族的文字元号都被收錄在内。
GBK和GB2312都是雙位元組等寬編碼,如果算上和ASCII相容所支援的單位元組,也可以了解為是單位元組和雙位元組混合的變長編碼。GB18030編碼是變長編碼,有單位元組、雙位元組和四位元組三種方式。
GB18030 的單位元組編碼範圍是0x00-0x7F,完全等同與ASCII;雙位元組編碼的範圍和GBK相同,高位元組是0x81-0xFE,低位元組的編碼範圍是0x40 -0x7E和0x80-FE;四位元組編碼中第一、三位元組的編碼範圍是0x81-0xFE,二、四位元組是0x30-0x39。
Windows 中CP936代碼頁使用0x80來表示歐元符号,而在GB18030編碼中沒有使用0x80編碼位,用其他位置來表示歐元符号。這可以了解為是 GB18030向下相容性上的一點小問題;也可以了解為0x80是CP936對GBK的擴充,而GB18030隻是和GBK相容良好。
unicode字元集編碼
每一種語言的不同的編碼頁,增加了那些需要支援不同語言的軟體的複雜度。因而人們制定了一個世界标準,叫做unicode。unicode為每個字元 提供 了唯一的特定數值,不論在什麼平台上、不論在什麼軟體中,也不論什麼語言。也就是說,它世界上使用的所有字元都列出來,并給每一個字元一個唯一特定數值。
Unicode的最初目标,是用1個16位的編碼來為超過65000字元提供映射。但這還不夠,它不能覆寫全部曆史上的文字,也不能解決傳輸的問題 (implantation head-ache's),尤其在那些基于網絡的應用中。已有的軟體必須做大量的工作來程式16位的資料。
因 此,Unicode用一些基本的保留字元制定了三套編碼方式。它們分别是UTF-8,UTF-16和UTF-32。正如名字所示,在UTF-8中,字元是 以8位序列來編碼的,用一個或幾個位元組來表示一個字元。這種方式的最大好處,是UTF-8保留了ASCII字元的編碼做為它的一部分,例如,在UTF-8 和ASCII中,“A”的編碼都是0x41.
UTF-16和UTF-32分别是Unicode的16位和32位編碼方式。考慮到最初的目的,通常說的Unicode就是指UTF-16。在讨論Unicode時,搞清楚哪種編碼方式非常重要。
UTF-8字元集編碼
Unicode Transformation Format-8bit,允許含BOM,但通常不含BOM。是用以解決國際上字元的一種多位元組編碼,它對英文使用8位(即一個位元組),中文使用24為(三 個位元組)來編碼。UTF-8包含全世界所有國家需要用到的字元,是國際編碼,通用性強。UTF-8編碼的文字可以在各國支援UTF8字元集的浏覽器上顯 示。如,如果是UTF8編碼,則在外國人的英文IE上也能顯示中文,他們無需下載下傳IE的中文語言支援包。
GBK的文字編碼是用雙位元組來表示的,即不論中、英文字元均使用雙位元組來表示,為了區分中文,将其最高位都設定成1。GBK包含全部中文字元,是國家編碼,通用性比UTF8差,不過UTF8占用的資料庫比GBD大。
GBK、GB2312等與UTF8之間都必須通過Unicode編碼才能互相轉換:
GBK、GB2312--Unicode--UTF8
UTF8--Unicode--GBK、GB2312
對于一個網站、論壇來說,如果英文字元較多,則建議使用UTF-8節省空間。不過現在很多論壇的插件一般隻支援GBK。
ASCII碼對照表
下表列出了字元集中的 0 - 127。
代碼 | 字元 | 代碼 | 字元 | 代碼 | 字元 | 代碼 | 字元 |
---|---|---|---|---|---|---|---|
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 | 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 | þ |
** 數值 8、9、10 和 13 可以分别轉換為倒退符、制表符、換行符和回車符。這些字元都沒有圖形表示,但是對于不同的應用程式,這些字元可能會影響文本的顯示效果。
"空" 表示在目前平台上不支援的字元。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13771794/viewspace-664635/,如需轉載,請注明出處,否則将追究法律責任。
轉載于:http://blog.itpub.net/13771794/viewspace-664635/