版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、常用 ASCII 碼對照表字符ASCII 碼字符ASCII 碼十進(jìn)制二進(jìn)制十六進(jìn)制十進(jìn)制二進(jìn)制十六進(jìn)制NUL(空)000000000M7710011014D換行100001010AN7810011104E空格32010000020O7910011114F!(感嘆號)33010000121P8010100005034010001022Q81101000151#35010001123R82101001052$36010010024S83101001153%37010010125T84101010054&38010011026U85101010155(引號)39010011127V86101
2、011056(40010100028W87101011157)41010100129X88101100058*4201010102AY89101100159+4301010112BZ9010110105A4401011002C9110110115B-(減號)4501011012D9210111005C4601011102E9310111015D/ (除號)4701011112FA9410111105E048011000030-9510111115F149011000131a97110000161250011001032b98110001062351011001133c9911000116345
3、2011010034d100110010064553011010135e101110010165654011011036f102110011066755011011137g103110011167856011100038h104110100068957011100139i1051101001695801110103Aj10611010106A5901110113Bk10711010116B6201111103En11011011106E6301111113Fo11111011116F64100000040p112111000070A65100000141q113111000171B661000
4、01042r114111001072C67100001143s115111001173D68100010044t116111010074E69100010145u117111010175F70100011046v118111011076G71100011147w119111011177H72100100048x120111100078I73100100149y121111100179J7410010104Az12211110107AK7510010114B12311110117BL7610011004C12511111017D字符ASCII 碼字符ASCII 碼十進(jìn)制二進(jìn)制十六進(jìn)制十進(jìn)制二進(jìn)制
5、十六進(jìn)制1. ASCII 碼bit )有 0 和 1兩種狀態(tài), 因此八個二進(jìn)制位就可以組合岀256 種狀態(tài),這被稱為一個字節(jié)(byte )。也就是說,一個字節(jié)一共可以用來表示256 種不同的狀態(tài),每一個狀態(tài)對應(yīng)一個符號,就是 256 個符號,從 0000000 到。上個世紀(jì) 60 年代,美國制定了一套字符編碼,對英語字符與二進(jìn)制位之間的關(guān)系,做了統(tǒng)一規(guī)定。這被稱為 ASCII 碼,一直沿用至今。ASCII 碼一共規(guī)定了 128 個字符的編碼,比如空格“SPACE 是 32(十進(jìn)制的 32,用二進(jìn)制表示就是 00100000),大寫的字母 A 是 65(二進(jìn)制 01000001 ) 。這 128
6、 個符號(包括 32 個不能打印岀來的控制符號),只占用了一個字節(jié)的后面 7 位,最前面的 1 位統(tǒng)一規(guī)定為 0。2、非 ASCII 編碼英語用 128 個符號編碼就夠了,但是用來表示其他語言,128 個符號是不夠的。 比如,在法語中,字母上方有注音符號,它就無法用ASCII 碼表示。于是,一些歐洲國家就決定,利用字節(jié)中閑置的最高位編入新的符號。比如,法語中的e的編碼為 130 (二進(jìn)制)。這樣一來,這些歐洲國家使用的編碼體系,可以表示最多256 個符號。但是,這里又岀現(xiàn)了新的問題。不同的國家有不同的字母,因此,哪怕它們都使用 256 個符號的編碼方式,代表的字母卻不一樣。比如,130 在法語
7、編碼中代表了0,在希伯來語編碼中卻代表了字母 Gimel (),在俄語編碼中又會代表另一個符號。但是不管怎樣,所有這些編碼方式中, 0 127 表示的符號是一樣的,不一樣的只是128 255 的這一段。至于亞洲國家的文字,使用的符號就更多了,漢字就多達(dá)10 萬左右。一個字節(jié)只能表示256 種符號,肯定是不夠的,就必須使用多個字節(jié)表達(dá)一個符號。比如,簡體中文常見的編碼方式是GB2312,使用兩個字節(jié)表示一個漢字,所以理論上最多可以表示256x256=65536 個符號。正如上一節(jié)所說, 世界上存在著多種編碼方式, 同一個二進(jìn)制數(shù)字可以被解釋成不同的符號。因此,要想打開一個文本文件,就必須知道它的
8、編碼方式,否則用錯誤的編碼方式解讀,就會岀現(xiàn)亂碼。為什么電子郵件常常岀現(xiàn)亂碼就是因?yàn)榘l(fā)信人和收信人使用的編碼方式不一樣。解釋:同一個文本文件,假設(shè)內(nèi)容是用英語寫的,在英語編碼的情況下,每個字符會和一個二進(jìn)制數(shù)對應(yīng)(如 00101000 類似),然后存到計算機(jī)中,這時把這個英語文件發(fā)給一個俄語國家的用戶,計算機(jī)傳輸?shù)氖嵌M(jìn)制流,即0101 之類的數(shù)據(jù),到了俄語用戶這方,需要有它的俄語編碼方式進(jìn)行解碼,把每個二進(jìn)制流轉(zhuǎn)為字符顯示,由于俄語編碼表中對每串二進(jìn)制流數(shù)據(jù)的解釋方式不同,同一個數(shù)據(jù)如 00101000 在英語中可能代表 A,而在俄語中則代表 B,這樣就會產(chǎn)生亂碼,這是我個人的理解。GB23
9、12 編碼、日文編碼等也是非unicode 編碼,是要通過轉(zhuǎn)換表( codepage )轉(zhuǎn)換成 unicode編碼的,要不怎么顯示岀來呢可以想象,如果有一種編碼,將世界上所有的符號都納入其中。每一個符號都給予一個獨(dú)一無二的編碼,那么亂碼問題就會消失。這就是Uni code,就像它的名字都表示的,這是一種所有符號的編碼。在計算機(jī)內(nèi)部,所有的信息最終都表示為一個二進(jìn)制的字符串。每一個二進(jìn)制位(Uni code 當(dāng)然是一個很大的集合,現(xiàn)在的規(guī)??梢匀菁{100 多萬個符號。每個符號的編碼都不一樣,比如,U+0639 表示阿拉伯字母 Ain,U+0041 表示英語的大寫字母 A, U+4E25 表示漢字
10、“嚴(yán)”。 具體的符號對應(yīng)表,可以查詢,或者專門的 漢字對應(yīng)表。4. Un icode 的問題需要注意的是,Uni code 只是一個符號集,只是一種規(guī)范、標(biāo)準(zhǔn),它只規(guī)定了符號的二進(jìn)制代碼, 卻沒有規(guī)定這個二進(jìn)制代碼應(yīng)該如何存儲在計算機(jī)上。比如,漢字“嚴(yán)”的 uni code 是十六進(jìn)制數(shù) 4E25,轉(zhuǎn)換成二進(jìn)制數(shù)足足有 15 位(01),也就是 說這個符號的表示至少需要 2 個字節(jié)。表示其他更大的符號,可能需要3 個字節(jié)或者 4 個字節(jié),甚至更多。這里就有兩個嚴(yán)重的問題,第一個問題是,如何才能區(qū)別 uni code 和 ascii 計算機(jī)怎么知道三個 字節(jié)表示一個符號,而不是分別表示三個符號呢
11、第二個問題是,我們已經(jīng)知道,英文字母只用一個字節(jié)表示就夠了, 如果 uni code 統(tǒng)一規(guī)定,每個符號用三個或四個字節(jié)表示,那么每個英文字母前都必然有二到三個字節(jié)是0,這對于存儲來說是極大的浪費(fèi),文本文件的大小會因此大岀二三倍,這是無法接受的。它們造成的結(jié)果是:1)岀現(xiàn)了 uni code 的多種存儲方式,也就是說有許多種不同的二進(jìn)制格式, 可以用來表示 unicode。2) unicode 在很長一段時間內(nèi)無法推廣,直到互聯(lián)網(wǎng)的岀現(xiàn)?;ヂ?lián)網(wǎng)的普及,強(qiáng)烈要求岀現(xiàn)一種統(tǒng)一的編碼方式。UTF-8 就是在互聯(lián)網(wǎng)上使用最廣的一種uni code 的實(shí)現(xiàn)方式。其他實(shí)現(xiàn)方式還包括UTF-16 和 UTF
12、-32,不過在互聯(lián)網(wǎng)上基本不用。重復(fù)一遍,這里的關(guān)系是,UTF-8 是 Uni code 的實(shí)現(xiàn)方式之一,它規(guī)定了字符如何在計算機(jī)中存儲、傳輸?shù)?。UTF-8 最大的一個特點(diǎn),就是它是一種變長的編碼方式。它可以使用 14 個字節(jié)表示一個符號,根據(jù)不同的符號而變化字節(jié)長度。UTF-8 的編碼規(guī)則很簡單,只有二條:1) 對于單字節(jié)的符號,字節(jié)的第一位設(shè)為0,后面 7 位為這個符號的 uni code 碼。因此對于英 語字母,UTF-8 編碼和 ASCII 碼是相同的。2) 對于 n 字節(jié)的符號(n1),第一個字節(jié)的前 n 位都設(shè)為 1,第 n+1 位設(shè)為 0,后面字節(jié)的前 兩位一律設(shè)為 10。剩下的
13、沒有提及的二進(jìn)制位,全部為這個符號的uni code 碼。下表總結(jié)了編碼規(guī)則,字母x 表示可用編碼的位。Unicode 符號范圍| UTF-8 編碼方式(十六進(jìn)制)|(二進(jìn)制)0000 0000-0000 007F | Oxxxxxxx0000 0080-0000 07FF | 110 xxxxx 10 xxxxxx0000 0800-0000 FFFF | 1110 xxxx 10 xxxxxx 10 xxxxxx0001 0000-0010 FFFF | 11110 xxx 10 xxxxxx 10 xxxxxx 10 xxxxxx下面,還是以漢字“嚴(yán)”為例,演示如何實(shí)現(xiàn)UTF-8 編碼。
14、已知“嚴(yán)”的 unicode 是 4E25 ( 01),根據(jù)上表,可以發(fā)現(xiàn)4E25 處在第三行的范圍內(nèi)(00000800-0000 FFFF ),因此“嚴(yán)”的 UTF-8 編碼需要三個字節(jié),即格式是“ 1110 xxxx 10 xxxxxx10 xxxxxx 。然后,從嚴(yán)的最后一個二進(jìn)制位開始,依次從后向前填入格式中的x,多岀的位補(bǔ) 0。這樣就得到了,“嚴(yán)”的UTF-8 編碼是“10100101”,這是保存在計算機(jī)中的實(shí)際數(shù)據(jù),轉(zhuǎn)換成十六進(jìn)制就是E4B8A5,轉(zhuǎn)成十六進(jìn)制的目的為了便于閱讀。6. Unicode 與 UTF-8 之間的轉(zhuǎn)換通過上一節(jié)的例子,可以看到“嚴(yán)”的Unicode 碼是
15、4E25,UTF-8 編碼是 E4B8A5,兩者是不一樣的。它們之間的轉(zhuǎn)換可以通過程序?qū)崿F(xiàn)。在 Windows 平臺下,有一個最簡單的轉(zhuǎn)化方法,就是使用內(nèi)置的記事本小程序。打開文件后,點(diǎn)擊“文件”菜單中的“另存為”命令,會跳岀一個對話框,在最底部有一個“編碼”的下拉條。里面有四個選項:ANSI, Unicode, Unicode big endian 和 UTF-8。1)ANSI 是默認(rèn)的編碼方式。對于英文文件是ASCII 編碼,對于簡體中文文件是GB2312 編碼(只針對 Windows 簡體中文版,如果是繁體中文版會采用Big5 碼)。2)Uni code 編碼指的是UCS-2 編碼方式,
16、即直接用兩個字節(jié)存入字符的Uni code 碼。這個選項用的 little endian格式。3)Unicode big endian 編碼與上一個選項相對應(yīng)。我在下一節(jié)會解釋 littleendian 和 big endian的涵義。4) UTF-8 編碼,也就是上一節(jié)談到的編碼方法。選擇完”編碼方式“后,點(diǎn)擊”保存“按鈕,文件的編碼方式就立刻轉(zhuǎn)換好了。7. Little endian和 Big endian上一節(jié)已經(jīng)提到, Unicode 碼可以采用 UCS-2 格式直接存儲。以漢字”嚴(yán)“為例,Unicode 碼是4E25,需要用兩個字節(jié)存儲, 一個字節(jié)是 4E,另一個字節(jié)是 25o存儲的
17、時候, 4E 在前, 25 在后, 就是 Big endian方式;25 在前,4E 在后,就是 Little endian 方式。那么很自然的,就會岀現(xiàn)一個問題:計算機(jī)怎么知道某一個文件到底采用Uni code 規(guī)范中定義,每一個文件的最前面分別加入一個表示編碼順序的字符,這個字符的名字叫做”零寬度非換行空格“( ZEROWIDTHNO-BREAKSPACE,用 FEFF 表示。這正好是兩個字節(jié), 而且 FF比 FE 大 1。如果一個文本文件的頭兩個字節(jié)是FEFF,就表示該文件采用大頭方式;如果頭兩個字節(jié)是 FF FE,就表示該文件采用小頭方式。8.實(shí)例下面,舉一個實(shí)例。打開記事本程序,新建
18、一個文本文件,內(nèi)容就是一個”嚴(yán)字,依次采用ANSI, Uni code,Unicode big endian和 UTF-8 編碼方式保存。然后,用文本編輯軟件UltraEdit中的”十六進(jìn)制功能“,觀察該文件的內(nèi)部編碼方式。1) ANSI:文件的編碼就是兩個字節(jié)“ D1 CF,這正是“嚴(yán)”的GB2312 編碼,這也暗示 GB2312 是采用大頭方式存儲的。2) Uni code :編碼是四個字節(jié)“ FF FE 25 4E”,其中“ FF FE”表明是小頭方式存儲,真正的編碼是 4E25。3) Uni code big en dia n:編碼是四個字節(jié)“ FE FF 4E 25 ,其中“ FE
19、FF”表明是大頭方式存儲。4) UTF-8 :編碼是六個字節(jié)“ EF BB BF E4 B8 A5 ,前三個字節(jié)“ EF BB BF”表示這是UTF-8編碼,后三個“ E4B8A5 就是“嚴(yán)”的具體編碼,它的存儲順序與編碼順序是一致的。推薦這篇文章看一下:& varia nt=zh-c n#. 解決的問題:一、如何在中文系統(tǒng)中運(yùn)行非Uni code 編碼程序有很多意大利文版(除英文版)學(xué)習(xí)軟件、百科全書等軟件在中文系統(tǒng)上會岀現(xiàn)亂碼,解決方法:Win dowsXP 內(nèi)核是 Uni code 編碼,支持多語種,對于 Un icode 編碼的應(yīng)用程序會正常顯示原文(因?yàn)?windows 核心
20、是用 unicode 代碼寫的,所以不存在問題),但是,很多程序不是用Unicode編碼寫的,這時 WindowsXP 系統(tǒng)可以指定以特定的編碼運(yùn)行非Unicode 編碼程序,中文版WindowsXP 默認(rèn)的是“簡體中文 GB2312。你只需在控制面板 -區(qū)域和語言選項-高級- 為非 Uni code程序的語言選擇“意大利語”, 即可正確運(yùn)行意大利文版的游戲程序。分析:我理解的流程是這樣:程序 意大利語編碼(轉(zhuǎn)換表 codepage ) 解釋成 uni code 識別 的編碼(通過指定的轉(zhuǎn)換表將非 Uni code 的字符編碼轉(zhuǎn)換為同一字符對應(yīng)的系統(tǒng)內(nèi)部使用的Uni code 編碼)- 被系統(tǒng)
21、翻譯成意大利文(因?yàn)槊總€uni code 編碼對應(yīng)了相應(yīng)的意大利文字),便可以正常顯示了。二、消除網(wǎng)頁亂碼哪一種方式編碼網(wǎng)頁亂碼是瀏覽器對 HTML 網(wǎng)頁解釋時形成的,如果網(wǎng)頁制作時編碼為繁體big5,瀏覽器卻以編碼 gb2312 顯示該網(wǎng)頁,就會岀現(xiàn)亂碼,因此只要你在瀏覽器中也以繁體 big5 顯示該網(wǎng)頁,就會消除亂碼。打個比方有些像字典,繁體字得用繁體字典來查看, 然你看不懂?!窘鉀Q辦法】:在瀏覽器中選擇“編碼”菜單,事先為瀏覽器安裝多語言支持包(例如在安裝 IE 時要安裝多語言支持包),這樣當(dāng)瀏覽網(wǎng)頁岀現(xiàn)亂碼時,即可手工更改查看此網(wǎng)頁的編碼方式,在瀏覽器中選擇菜單欄下的“查看” / “編
22、碼” / “自動選擇” /簡體中文(GB2312,如為繁體中文則選擇“查看” / “編碼” / “自動選擇” /繁體中文(BIG5),其他語言依此類推,便可消除網(wǎng)頁亂碼現(xiàn)象。分析:因?yàn)榉斌w big5 編碼后的文件,每個文字對應(yīng)一個二進(jìn)制流(假設(shè)是 1212 對應(yīng)繁這個字),當(dāng)我們以編碼 gb2312 顯示該網(wǎng)頁時,gb2312 編碼會到表里去找 1212(二進(jìn)制流不會變的)對應(yīng)誰,肯定不再是 繁這個字了,當(dāng)然顯示的就不再是那個 繁字了,也就 會岀現(xiàn)亂碼了。這樣理解簡單些,其實(shí)中間還要轉(zhuǎn)換成同一字符對應(yīng)的系統(tǒng)內(nèi)部使用的Uni code編碼,然后通過系統(tǒng)底層 uni code 編碼還原成相應(yīng)字符顯
23、示岀來。推薦兩個編碼查詢網(wǎng)站:1.2.非打印控制字符ASCII 表上的數(shù)字 0 -31 分配給了控制字符,用于控制像打印機(jī)等一些外圍設(shè)備。例如,12 代表換頁/新頁功能。此命令指示打印機(jī)跳到下一頁的開頭。ASCII 非打印控制字符表十進(jìn)制十六進(jìn)制字符十進(jìn)制十六進(jìn)制字符0 00 空 16 10 數(shù)據(jù)鏈路轉(zhuǎn)意17 11 設(shè)備控制 118 12 設(shè)備控制 219 13 設(shè)備控制 320 14 設(shè)備控制 45 05 查詢 21 15 反確認(rèn)6 06 確認(rèn) 22 16 同步空閑7 07 震鈴 23 17 傳輸塊結(jié)束8 08 backspace 24 18 取消9 09 水平制表符 25 19 媒體結(jié)束1
24、0 0A 換行/新行 26 1A 替換11 0B 豎直制表符 27 1B 轉(zhuǎn)意12 0C 換頁/新頁 28 1C 文件分隔符13 0D 回車 29 1D 組分隔符14 0E 移出 30 1E 記錄分隔符15 0F 移入 31 1F 單元分隔符ASCII 打印字符數(shù)字 32 - 126 分配給了能在鍵盤上找到的字符,當(dāng)您查看或打印文檔時就會出現(xiàn)。數(shù)字 127代表 DELETE 命令。32 20 space 80 50 P簡體字得用簡體字典來查看,不1 01 頭標(biāo)開始2 02 正文開始3 03 正文結(jié)束4 04 傳輸結(jié)束ASCII 打印字符表十進(jìn)制十六進(jìn)制字符十進(jìn)制卜六進(jìn)制字符33 21 ! 81
25、 51 Q34 22 82 52 R35 23 # 83 53 S24 $ 8454 T25 % 85 55 U26 & 86 56 V27187 57 w28(88 58 X29)89 59 Y2A* 905A Z2B +915B2CJ925C2D-935D2E945EA2F /95 5F30 0 96 60 31 1 97 61 a32 2 98 62 b33 3 99 63 c34 4 100 64 d35 5 101 65 e36 6 102 66 f37 7 103 67 g38 8 104 68 h39 9 105 69 i3A : 106 6A j3B ; 107 6B
26、k3C 110 6E n3F 111 6F o40 112 70 p41 A 113 71 q42 B 114 72 r43 C 115 73 s363738394041424344454647484950515253545556575859606162636465666768 44 D 116 74 t69 45 E 117 75 u70 46 F 118 76 v71 47 G 119 77 w72 48 H 120 78 x73 49 I 121 79 y74 4A J 122 7A z75 4B K 123 7B 76 4C L 124 7C |77 4D M 125 7D 78 4E
27、 N 126 7E 79 4F O 127 7F DEL擴(kuò)展 ASCII 打印字符擴(kuò)展的 ASCII 字符滿足了對更多字符的需求。擴(kuò)展的 ASCII 包含 ASCII 字符(數(shù)字 0 - 32 顯示在下圖中),又增加了 128 個字符,總共是 256 更多的字符,許多語言還是包含無法壓縮到 256 個字符中的符號。因此, 的變體來囊括地區(qū)性字符和符號。例如,許多軟件程序把 ASCII 表(又稱作 ISO 8859-1 )用于北美、西歐、 的語言。擴(kuò)展的 ASCII 打印字符表十進(jìn)制十六進(jìn)制字符十進(jìn)制十六進(jìn)制字符128 80192 C0 匚129 81u193 C1 丄130 82e194 C2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年廣告創(chuàng)意設(shè)計委托合同
- 房屋貸款保險合同模板
- 2024版農(nóng)村建房材料供應(yīng)協(xié)議
- 2024年個人租房合同范本
- 代理招商合同參考
- 兩家企業(yè)合作協(xié)議書格式
- 凈身出戶的離婚協(xié)議書應(yīng)注意啥
- 家庭住宅裝潢監(jiān)理合同范例
- 房屋買賣居間合同書標(biāo)準(zhǔn)格式
- 子女撫養(yǎng)權(quán)協(xié)議書中的主要內(nèi)容與要求
- 傳染病實(shí)驗(yàn)室檢查的質(zhì)量控制
- 期中測試卷(1~3單元)(試題)2024-2025學(xué)年五年級上冊數(shù)學(xué)人教版
- 四川省成都市2024年七年級上學(xué)期期中數(shù)學(xué)試卷【附答案】
- 期中易錯密押卷(第1-5單元)(試題)-2024-2025學(xué)年五年級上冊數(shù)學(xué)人教版
- 咸寧房地產(chǎn)市場月報2024年08月
- 2024-2030年中國艾草行業(yè)供需分析及發(fā)展前景研究報告
- GB/T 37342-2024國家森林城市評價指標(biāo)
- 北京市海淀區(qū)2022-2023學(xué)年七年級上學(xué)期期末語文試題
- 古詩三首《江南春》+公開課一等獎創(chuàng)新教案+教學(xué)闡釋+素材
- 2024時事政治考試題庫(基礎(chǔ)題)
- 《學(xué)會專注高效學(xué)習(xí)》初中主題班會課件
評論
0/150
提交評論