Unicode字符全集_第1頁(yè)
Unicode字符全集_第2頁(yè)
Unicode字符全集_第3頁(yè)
Unicode字符全集_第4頁(yè)
Unicode字符全集_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

精品文檔 1歡迎下載 摩爾斯電碼摩爾斯電碼 摩爾斯電碼 又譯為摩斯電碼 是一種時(shí)通時(shí)斷的信號(hào)代碼 這種信號(hào)代碼通過(guò)不同的排列順 序來(lái)表達(dá)不同的英文字母 數(shù)字和標(biāo)點(diǎn)符號(hào)等 它由美國(guó)人艾爾菲德 維爾發(fā)明 艾爾菲德 維爾構(gòu)思了一個(gè)方案 通過(guò)點(diǎn) 劃和中間的停頓 可以讓每個(gè)字元和標(biāo)點(diǎn)符號(hào)彼此獨(dú) 立地發(fā)送出去 作為一種信息編碼標(biāo)準(zhǔn) 摩爾斯電碼擁有其他編碼方案無(wú)法超越的長(zhǎng)久的生命 摩爾斯電碼在 海事通訊中被作為國(guó)際標(biāo)準(zhǔn)一直使用到 1999 年 1997 年 當(dāng)法國(guó)海軍停止使用摩爾斯電碼時(shí) 發(fā) 送的最后一條消息是 所有人注意 這是我們?cè)谟肋h(yuǎn)沉寂之前最后的一聲吶喊 字字 符符 電碼符號(hào)電碼符號(hào)字字 符符 電碼符號(hào)電碼符號(hào)字字 符符 電碼符號(hào)電碼符號(hào)字字 符符 電碼符號(hào)電碼符號(hào) A A B B C C D D E E F F G G H H I I J J K K L L M M N N O O P P Q Q R R S S T T U U V V W W X X Y Y Z Z 數(shù)字?jǐn)?shù)字 字字 符符 電碼符號(hào)電碼符號(hào)字字 符符 電碼符號(hào)電碼符號(hào)字字 符符 電碼符號(hào)電碼符號(hào)字字 符符 電碼符號(hào)電碼符號(hào) 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 精品文檔 2歡迎下載 ASCIIASCII 美國(guó)信息交換標(biāo)準(zhǔn)碼 ASCII American Standard Code for Information Interchange 起始于 50 年代后期 并最終在 1967 年定案 最終的代碼有 26 個(gè) 小寫(xiě)字母 26 個(gè)大寫(xiě)字母 10 個(gè)數(shù)字 32 個(gè)符號(hào) 33 個(gè)控制代碼和一個(gè)空格 BinDecHex 縮寫(xiě) 字符解釋 00000000000NUL null 空字符 00000001101SOH start of headling 標(biāo)題開(kāi)始 00000010202STX start of text 正文開(kāi)始 00000011303ETX end of text 正文結(jié)束 00000100404EOT end of transmission 傳輸結(jié)束 00000101505ENQ enquiry 請(qǐng)求 00000110606ACK acknowledge 收到通知 00000111707BEL bell 響鈴 00001000808BS backspace 退格 00001001909HT horizontal tab 水平制表符 00001010100ALF NL line feed new li ne 換行鍵 00001011110BVT vertical tab 垂直制表符 00001100120CFF NP form feed new pa ge 換頁(yè)鍵 00001101130DCR carriage return 回車(chē)鍵 00001110140ESO shift out 不用切換 精品文檔 3歡迎下載 00001111150FSI shift in 啟用切換 000100001610DLE data link escape 數(shù)據(jù)鏈路轉(zhuǎn)義 000100011711DC1 device control 1 設(shè)備控制 1 000100101812DC2 device control 2 設(shè)備控制 2 000100111913DC3 device control 3 設(shè)備控制 3 000101002014DC4 device control 4 設(shè)備控制 4 000101012115NAK negative acknowledg e 拒絕接收 000101102216SYN synchronous idle 同步空閑 000101112317ETB end of trans block 傳輸塊結(jié)束 000110002418CAN cancel 取消 000110012519EM end of medium 介質(zhì)中斷 00011010261ASUB substitute 替補(bǔ) 00011011271BESC escape 溢出 00011100281CFS file separator 文件分割符 00011101291DGS group separator 分組符 00011110301ERS record separator 記錄分離符 00011111311FUS unit separator 單元分隔符 001000003220 space 空格 001000013321 001000103422 001000113523 001001003624 001001013725 001001103826 00111100603C 00111111633F 精品文檔 5歡迎下載 010000006440 010000016541A 010000106642B 010000116743C 010001006844D 010001016945E 010001107046F 010001117147G 010010007248H 010010017349I 01001010744AJ 01001011754BK 01001100764CL 01001101774DM 01001110784EN 01001111794FO 010100008050P 010100018151Q 010100108252R 010100118353S 010101008454T 010101018555U 010101108656V 010101118757W 010110008858X 精品文檔 6歡迎下載 010110018959Y 01011010905AZ 01011011915B 01011100925C 01011101935D 01011110945E 01011111955F 011000009660 011000019761a 011000109862b 011000119963c 0110010010064d 0110010110165e 0110011010266f 0110011110367g 0110100010468h 0110100110569i 011010101066Aj 011010111076Bk 011011001086Cl 011011011096Dm 011011101106En 011011111116Fo 0111000011270p 0111000111371q 精品文檔 7歡迎下載 0111001011472r 0111001111573s 0111010011674t 0111010111775u 0111011011876v 0111011111977w 0111100012078x 0111100112179y 011110101227Az 011110111237B 011111001247C 011111011257D 011111101267E 011111111277FDEL delete 刪除 ASCII 是一個(gè)真正的美國(guó)標(biāo)準(zhǔn) 所以他不能很好的滿(mǎn)足其他將英語(yǔ)的國(guó)家的需要 例 如英國(guó)的英鎊符號(hào) 就沒(méi)有 解決方案為代碼頁(yè) 解決方案為代碼頁(yè) 在小型機(jī)開(kāi)發(fā)初期 就已經(jīng)嚴(yán)格建立了 8 位字節(jié) 因此 如果使用一個(gè)字節(jié)來(lái)保存字 符 則可以由 128 個(gè)附加的字符來(lái)補(bǔ)充 最低的 128 個(gè)代碼總是相同的 較高的 128 個(gè)代碼則取決于定義代碼頁(yè)的語(yǔ)言 如果 用戶(hù)為 PC 鍵盤(pán) 顯示卡 和打印機(jī)指定了一個(gè)代碼頁(yè) 然后在 PC 上創(chuàng)建 編輯和打印文 檔 一切都很正常 每件事都會(huì)保持一致 然而 如果用戶(hù)試圖與使用不同代碼頁(yè)的用戶(hù) 交換文件 就會(huì)產(chǎn)生問(wèn)題 當(dāng)然 應(yīng)用程序可以通過(guò)將代碼頁(yè)信息與文檔一起保存的方式 來(lái)解決問(wèn)題 但是且慢 更糟的事情還在后頭 在中國(guó) 日本和韓國(guó)的象形文字符號(hào)大約有 21000 個(gè) 如何容納這些語(yǔ)言而仍保持和 ASCII 的某種兼容性呢 精品文檔 8歡迎下載 解決方案為雙字節(jié)字符集解決方案為雙字節(jié)字符集 雙字節(jié)字符集 DBCS double byte character set 與其他代碼頁(yè)一樣 最初的 128 個(gè)代碼是 ASCII 較高的 128 個(gè)代碼中的某些總是跟隨者第二個(gè)字節(jié) 稱(chēng)作首字節(jié)和跟隨 字節(jié) 這兩個(gè)字節(jié)一起定義一個(gè)字符 通常是一個(gè)復(fù)雜的象形文字 DBCS 的問(wèn)題在于不是每個(gè)字符都由兩個(gè)字節(jié)代表 一些字符由一個(gè)字節(jié)表示 而另一 些字符則由兩個(gè)字符表示 這會(huì)引起附加的編程問(wèn)題 例如 字符串中的字符數(shù)不能由字 符串的字節(jié)數(shù)決定 必須剖析字符串來(lái)決定其長(zhǎng)度 而且必須檢查每個(gè)字節(jié)以確定它是否 為雙字節(jié)字符 令人驚訝的是這套機(jī)制 雖然對(duì)付 但仍被程序員所接受了 今天我們使用的 C 運(yùn)行 庫(kù)函數(shù)都是在這套機(jī)制下編寫(xiě)的 UnicodeUnicode 解決方案解決方案 我們面臨的問(wèn)題是世界上的書(shū)寫(xiě)語(yǔ)言不能簡(jiǎn)單地用 256 個(gè) 8 位代碼表示 怎么辦 用 16 位表示唄 Unicode 就是這樣一個(gè)字符集 它的每個(gè)字符都是 16 位寬 而且最大的好處 是 您將只需要操作一個(gè)字符集 因?yàn)?Unicode 字符集 涵蓋了所有文字符號(hào) 再也不用 考慮代碼頁(yè)之間的轉(zhuǎn)換問(wèn)題了 當(dāng)然 Unicode 也有缺點(diǎn) 那就是他的字符串占用的內(nèi)存是 ASCII 的兩倍 charchar 與與 wchar twchar t 即便使用 Unicode char 數(shù)據(jù)類(lèi)型仍然表示 1 個(gè)字節(jié)的存儲(chǔ)空間 如果想定義一個(gè)兩個(gè)字節(jié)寬度的字符存儲(chǔ)空間 需要使用 wchar t 例如 char c A wchar t c L A 注意緊挨的大寫(xiě)字母 L 它將告訴編譯器該字符按寬字符保存 即每個(gè)字符占用 2 個(gè) 字節(jié) char p Hello wchar t p L Hello 世界正在改變世界正在改變 我們現(xiàn)在嘗試著獲取字符串的長(zhǎng)度 char pc Hello iLength strlen pc 字符串長(zhǎng)度為 6 wchar t pw L Hello 再次調(diào)用 strlen 精品文檔 9歡迎下載 iLength strlen pw 您會(huì)發(fā)現(xiàn) iLength 的值為 1 為什么 字符串 L Hello 在內(nèi)存中的格式為 48 00 65 00 6C 00 6C 00 6F 00 21 00 strlen 會(huì)把第一個(gè)字節(jié)作為字符開(kāi)始計(jì)數(shù) 但接著下一個(gè)字節(jié)是 0 則表示字符串結(jié) 束 你知道這意味這什么么 如果想支持 Unicode 那就得重寫(xiě)所有的 C 運(yùn)行庫(kù)函數(shù) 當(dāng)然 也沒(méi)有那么夸張 只要重寫(xiě)所有跟字符串有關(guān)的函數(shù)就可以了 而且好消息是 這些工作 已經(jīng)做完了 想要獲取一個(gè)寬字符的字節(jié)數(shù)只要調(diào)用 wcslen 就可以了 iLength wcslen pw 兩套字符集兩套字符集 一套維護(hù)代碼一套維護(hù)代碼 Unicode 最大的缺點(diǎn)是程序中的每個(gè)字符串都將占用兩倍的存儲(chǔ)空間 而且某些地區(qū)可能值支持 ASCII 并不支持 Unicode 非常少見(jiàn) 所以也許您希望建立兩個(gè)版本的程序 一個(gè)處理 ASCII 字符串 另一個(gè)處理 Unicode 字符串 雖然這是一個(gè)小問(wèn)題 但由于運(yùn)行庫(kù)函數(shù)有不同的名稱(chēng) 您也要用不同的方式 char wchar t 定義字符 而且寬字符字符串前面還需要加 L 解決辦法是 宏 首先是字符串前面的 L 我們可以使用 TEXT 宏來(lái)為我們解決這個(gè)問(wèn)題 define TEXT x L x define TEXT x x 成為粘貼符號(hào) 不同的運(yùn)行庫(kù)函數(shù)名稱(chēng) 也可以通過(guò)這個(gè)方式解決 TCHAR 因?yàn)?C 支持兩種字符串 即常規(guī)的 ANSI 編碼 使用 包裹 和 Unicode 編碼 使用 L 包裹 這樣對(duì)應(yīng)的就有了兩套字符串處理函數(shù) 比如 strlen 和 wcslen 分別用于處 理兩種字符串 精品文檔 10歡迎下載 目錄 1 定義 2 使用原理 1定義編輯 TCHAR 是通過(guò) define 定義的字符串宏 1 2使用原理編輯 因?yàn)?C 支持兩種字符串 即常規(guī)的 ANSI 編碼 使用 包裹 和 Unicode 編碼 使用 L 包裹 這樣對(duì)應(yīng)的就有了兩套字符串處理函數(shù) 比如 strlen 和 wcslen 分別用于處 理兩種字符串 微軟將這兩套字符集及其操作進(jìn)行了統(tǒng)一 通過(guò)條件編譯 通過(guò) UNICODE 和 UNICODE 宏 控制實(shí)際使用的字符集 這樣就有了 T 這樣的字符串 對(duì)應(yīng)的就有了 tcslen 這 樣的函數(shù) 為了存儲(chǔ)這樣的通用字符 就有了 TCHAR 當(dāng)沒(méi)有定義 UNICODE 宏時(shí) TCHAR char tcslen strlen 當(dāng)定義了 UNICODE 宏時(shí) TCHAR wchar t tcslen

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論