如果你想在電腦中顯示其他國家的文字_第1頁
如果你想在電腦中顯示其他國家的文字_第2頁
如果你想在電腦中顯示其他國家的文字_第3頁
如果你想在電腦中顯示其他國家的文字_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、Unicode 簡介井民全如果你想在電腦中顯示其他國家的文字, 你要使用 Unicode 並且要下載相關(guān)的字型. Unicode將目前世界上大多數(shù)的語言都收集在一個統(tǒng)一的文字庫中 (Unicode space). 使用 Unicode 可以表示世界上所有的書寫語言中,可能用於電腦通訊中的文字,象形文字與其他符號. 最初, Unicode 只是打算作為 ASCII 的補(bǔ)充用, 但是目前的趨勢似乎會全面取代 ASCII.Unicode 可以表示的完整文字集 (code points) 編號為 U+0 到U+10FFFF.所有的字元集合圖形可以在 /char

2、ts/ 中查閱得知. 比較值得我們注意的是: CJK Unified Ideographs (5MB) (中日韓文字) 這個字集包含了中日韓三種象形文字, 中文包含繁體與簡體. 所以根據(jù) Unicode 的定義, 同一份文章同時顯示繁體中文,簡體中文,日文與韓文是可能的. 因為他們分別以不同的 code points 表示.Unicode code points容量為 0x10FFFF+1 = 共1114112種符號可用來表示世界上所有書寫語言用於電腦通訊中的文字. 1Unicode編碼格式的介紹: Unicode 基於效率與容量的考量,總共分為三種編碼方式. 你只要擇一編碼即可.UTF-32

3、: 最簡單的編碼方式,直接使用32-bit 對code points編碼,使得UTF-32碼與code point 形成 1 對 1對應(yīng).UTF-16: 範(fàn)圍在 U+0000 . U+FFFF 以內(nèi)的code points等常用字, 直接使用兩個byte編碼, 對於剩下的 U+10000 . U+10FFFF,則使用較多的4個byte編碼. 其中NotePad 存檔選項使用的 Unocide 選項存檔就是這種編碼方式. UTF-8: 為可變長度編碼(即每個字的編碼長度不固定), 為一串8-bit 編碼單元(code units)所組成. 主要特徵為與ASCII 相容 因為過去大部分的系統(tǒng)長期使

4、用 bytes 串列表示字元資料且一些通訊協(xié)定使用ASCII使用特殊的byte值當(dāng)作控制用途.所以 UTF-8編碼格式與ASCII CODE中的(0x00 . 0x7F)是一樣的(transparency) 這個意思是 Unicode 的code point 範(fàn)圍中的 U+0000 . U+007F在 UTF-8的編碼格式下,會被編成 0x00 . 0x7F. 不在 ASCII 範(fàn)圍的code points 一律使用 1 個byte 以上的編碼單元表示>另外 針對下列三種狀況,給予不同的編碼 - 所有非象形文字使用 2 個 bytes 編碼 - U+0080 . U+FFFF 範(fàn)圍內(nèi)的文

5、字, 使用 3 個 bytes 編碼 - U+10000 . U+10FFFF 則使用 4 個 bytes 編碼例如: "井" U+4E95 <-(這個字你可以用 xp 的字元對應(yīng)表程式查出所在的Unicode point) UTF-32 = 0x00004E95 UTF-16 = 0x4E95 UTF-8 = (比較複雜 略) 輸入 Unicode查看字形編碼格式的比較效率空間UTF-32最有效率不用轉(zhuǎn)換最浪費空間 => 每個字都要使用 4-byte 存檔UTF-16中等 常用字幾乎不用轉(zhuǎn)換中等(常用字用 2 bytes 表示(少用的字用 4 bytes 表示

6、)UTF-8 最沒有效率(只有 ASCII 不用轉(zhuǎn)換)(最節(jié)省空間) 使用可變長度編碼如何編碼的詳細(xì)步驟,請自行參閱延伸讀物 1. (1) 作業(yè)系統(tǒng)與 Unicode的關(guān)係 作業(yè)系統(tǒng)為了能在任何國家都能處理符號的問題,Unicode 就是其中一種設(shè)計的考量. Windows2000/XP 作業(yè)系統(tǒng)核心,完全使用 Unicode 表示文字. (98 卻很少支援 Unicode), 所以當(dāng)你使用C+ printf("柔情似水");Windows 會自動將 Big5 的兩個 ASCII code轉(zhuǎn)成相對應(yīng)的 Unicode 進(jìn)行 Win32 API 的呼叫, 最後把結(jié)果再轉(zhuǎn)換成

7、Big5 呈現(xiàn)在consol視窗中.圖形如下: "柔情似水" -> 轉(zhuǎn)成 Unicode -> 呼叫Win32API -> 轉(zhuǎn)成Big5 -> 顯示在 consol 視窗中 由此可知, Windows 作業(yè)系統(tǒng)內(nèi)部就完全使用 Unicode 表示文字, 因為驅(qū)動程式為作業(yè)系統(tǒng)的一部分, 所以當(dāng)你要使用 DDK 撰寫 Windows 驅(qū)動程式時,就必須要注意文字一定要使用 Unicode 處理. (2) C語言 與 Unicode的關(guān)係 人家常常說, Unicode 使用 16-bit 表示字元,其實指的就是 UTF-16 編碼方式. 如果你從上面看到

8、這裡, 你就會明白我在說甚麼了吧. (程式語言只使用 UTF-16的 U+0000 . U+FFFF 範(fàn)圍的常用字) 在 C/C+ 中,如果你要把字串當(dāng)作Unicode 使用,你必須使用"寬字元" wchar_t. (定義在 WCHAR.h)寬字元char c='A' / c的內(nèi)容為 ASCII CODE 0x41 (一個 byte)wchar_t d='A' / d的內(nèi)容為 Unicode 0x0041 (UTF-16 兩個bytes) *在電腦(INTEL CPU)下的記憶體排列順序為 41(低位址), 00(高位址)Windows 下的

9、寬字元處理方式TCHAR.HTCHAR c='A' / 若加入 #define _UNICODE, 則 TCHAR -> wchar_t / 否則 TCHAR -> char字串char *str=”Hello!: / 字串結(jié)尾使用 0( 1個 byte)表示strlen(p); / 傳回 6 (不含結(jié)尾0)wchar_t *p=L"Hello!" / L 表示 long, 指示該字串以寬字元方式以 2-byte 為單位保存, 字串的結(jié)尾0佔用 2 byteswcslen(p1); / 傳回 6 (不含結(jié)尾)Windows 下的字串處理方式TCHAR *p=_T("Hello!"); / #define _UNICODE, _T("Hello!") -> L&q

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論