2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Unicode和多語言信息處理,,內(nèi)容,早期的本地化技術(shù)軟件國際化和多語言信息處理的需求常見字符集、編碼介紹Unicode Technology 簡介開發(fā)支持Unicode的程序Internet 時(shí)代的多語言信息處理相關(guān)資源不涉及文字消息(界面)本地化,早期的本地化技術(shù),問題的歷史起因電子計(jì)算機(jī)源起于英美,較少考慮國際需求早期不面向普通用戶,無交互早期的本地化努力互相獨(dú)立缺乏溝通合作逆向工程、外掛,支持不徹底應(yīng)

2、用軟件要做個(gè)例修改,缺乏復(fù)用早期漢化的重要成果:GB2312 標(biāo)準(zhǔn),基于國際化的本地化,抽象出共同部分做成框架,應(yīng)用程序接口,國際化核心功能,本地化數(shù)據(jù)定義接口,英文定義,俄文定義,中文定義,……,文字處理,數(shù)據(jù)庫,多媒體,……,基于國際化的本地化-續(xù),成果抽象框架,功能復(fù)用,簡化開發(fā)過程可加載的本地化模塊,易于擴(kuò)展寬字符機(jī)制,避開多字節(jié)編碼的字節(jié)邊界缺陷編碼空間不兼容,導(dǎo)致“亂碼”即使使用寬字符,不同語言的文字也無法共同

3、處理,亂碼一例,GBKByte1 : [0x81, 0xFE]Byte2 : [0x40, 0xFE]Latin-1Single byte : [0xA0, 0xFF]序列 0xF1,0x61 如何解釋?在GBK里是馻在Latin-1里是ña,馻,ña,多語言需求的解決方法,問題:字符集太小解決:設(shè)計(jì)大字符集并預(yù)留擴(kuò)充位問題:編碼空間沖突解決:設(shè)計(jì)新的編碼方式有狀態(tài)編碼,使用轉(zhuǎn)義序列局部兼容性

4、,編程復(fù)雜無狀態(tài)編碼,為每個(gè)編碼點(diǎn)保留唯一編碼值需要碼表轉(zhuǎn)換,編程簡單,常見字符集和編碼,ASCIIAmerican Standard Code for Information Interchange起源于美國國會圖書館等同于 ISO 646包含英文大小寫字母、阿拉伯?dāng)?shù)字、標(biāo)點(diǎn)符號、控制符7位編碼是后來各種字符集、編碼的兼容性參考,常見字符集和編碼-續(xù),ISO-8859擴(kuò)充了ASCII,加入歐洲語言的字母和符號8位編

5、碼,擴(kuò)充部分在b7=1的區(qū)域,避開控制符,與ASCII兼容分為多個(gè)擴(kuò)展集,適應(yīng)不同文字ISO-8859-1 西歐ISO-8859-5 西里爾語ISO-8859-7 希臘語ISO-8859-15 增加歐元符號……,常見字符集和編碼-續(xù),亞洲語言的字符集中國大陸:GB系列中國臺灣:CNS、Big5日本:JIS X韓國:KSC大字符集:CCCII、ANSI Z39.64、ISO 10646亞洲語言的編碼系統(tǒng)ISO-2

6、022 多七位編碼EUC 多八位編碼雙字節(jié)編碼:Shift JIS、GBK、Big5Unicode類編碼其它:HZ-GB-2312、GB18030、TRON、ANSI Z39.64等,Unicode Technology,Unicode是什么?Unicode provides a unique number for every character,no matter what the platform,no matter

7、what the program,no matter what the language.關(guān)于字符集、編碼的一系列相關(guān)標(biāo)準(zhǔn)和處理技術(shù)的總和,Unicode Technology-續(xù),Unicode的起源與發(fā)展發(fā)起者:Xerox、Apple、IBM、Microsoft、Sun、DEC、Novell等Unicode與ISO-10646的競爭ISO 10646:4個(gè)8位元定長,避開控制區(qū)C0和C1,不要求b7都為0或1Unicod

8、e:直接使用16位元,不避C0和C1Unicode與ISO-10646的統(tǒng)一ISO 10646放棄避開控制區(qū)的方式Unicode并入ISO 10646的字面0,使用多八位元表示Unicode版本在不斷更新增加新的字符,修正錯(cuò)誤,Unicode Technology-續(xù),字符索引值的結(jié)構(gòu)0ggggggg pppppppp rrrrrrrr ccccccccb31固定為07位群(group)索引,8位面(plane)索引,8

9、位行(row)索引,8位格(cell)索引每個(gè)面的0xFFFE和0xFFFF值保留總共可收錄的字?jǐn)?shù)為128×256×(256×256-2)=2,147,418,112個(gè),Unicode Technology-續(xù),Unicode的字符集UCS: Universal Multiple-Octet Coded Character SetBMP: Basic Multilingual Plane即Plane

10、 0UCS-2BMP的字符集相當(dāng)于早期的Unicode,Unicode Technology-續(xù),Unicode BMP字符子集0000~007F: ASCII0080~00A0: C1控制碼00A1~1FFF: 拼音文字2000~28FF: 符號2E80~33FF: 中日韓符號(部首、注音符號、日文假名、帶括號數(shù)字等)3400~4DFF: 中日韓表意文字?jǐn)U充區(qū)4E00~9FFF: 中日韓表意文字主區(qū)(20902個(gè)漢

11、字)A000~A4FF: 彝族文字,AC00~D7FF: 韓文拼音組合字D800~DFFF: 代用對,專用于UTF-16E000~F8FF: 私有區(qū),用于自造字F900~FAFF: 中日韓兼容表意文字區(qū)FB00~FFFD: 文字表現(xiàn)形式區(qū)(豎排標(biāo)點(diǎn)、全角字符等)BMP外的字符子集Plane1: 其它非表意文字Plane2: 中日韓擴(kuò)充文字和CNS11643兼容字,Unicode Technology-續(xù),Unicode的

12、編碼方式Unicode Transformation Format目的: 效率、兼容性UTF-32直接用一個(gè)32位元表示一個(gè)UCS字符UTF-16用1~2個(gè)16位元表示一個(gè)UCS字符BMP字符為1個(gè)16位元,其它面字符用代用對UTF-8用1~4個(gè)8位元表示一個(gè)UCS字符,理論上是6個(gè)ASCII為1個(gè)8位元,大部分拼音文字用2個(gè)8位元,表意文字用3個(gè)8位元,BMP之外的面用4個(gè)8位元Java里的UTF-8可能出現(xiàn)6個(gè)

13、8位元,是歷史原因,目前已定義的Unicode字符至多用到4個(gè),Unicode Technology-續(xù),UTF-8的編碼規(guī)則,Unicode Technology-續(xù),字節(jié)序用多八位元表示16位或32位整數(shù)Big-endian、Little-endian字節(jié)順序標(biāo)記數(shù)值: FEFFUTF-16BE: FE FFUTF-16LE: FF FEUTF-8: EF BB BF,開發(fā)支持Unicode的程序,操作系統(tǒng)和運(yùn)行時(shí)庫的

14、Unicode支持Windows NT Family的Win32子系統(tǒng)內(nèi)部全面支持Unicode,內(nèi)核、設(shè)備驅(qū)動、文件系統(tǒng)接口都使用UnicodeUser level API全面支持Unicode,同時(shí)提供非Unicode的API兼容16位Windows下的源代碼Unicode文本使用UTF-16編碼Unicode IME:碼表、微軟輸入法、拼音加加3.1Windows 9X的Unicode API只提供了入口,內(nèi)部沒有實(shí)現(xiàn)

15、,調(diào)用則返回錯(cuò)誤代碼,開發(fā)支持Unicode的程序-續(xù),操作系統(tǒng)和運(yùn)行時(shí)庫的Unicode支持-續(xù)開放系統(tǒng)各類Unix系統(tǒng)的syscall、vfs等涉及文本的地方都是char*,因此最好的折中方式是UTF-8glibc的wide char是UTF-32編碼,但只適用于GNU系統(tǒng);其它系統(tǒng)的libc未必如此XFree86/Xorg在保留復(fù)雜的X11復(fù)合文本的同時(shí)引入Xutf8系列API支持Unicodegnome使用UTF-8作

16、為內(nèi)部編碼,KDE通過QString支持Unicodescim輸入平臺全面支持Unicode,開發(fā)支持Unicode的程序-續(xù),Windows的雙模API文檔中的原型BOOL SetWindowText(HWND hWnd, LPCTSTR lpString);實(shí)際原型BOOL SetWindowTextA(HWND hWnd, LPCSTR lpString);BOOL SetWindowTextW(HWND hWnd,

17、LPCWSTR lpString);#ifdef UNICODE#define SetWindowText SetWindowTextW#else#define SetWindowText SetWindowTextA#endif,開發(fā)支持Unicode的程序-續(xù),用MSLU開發(fā)支持Unicode的軟件原理在NT上直接調(diào)用-W API在9X上截取-W系列API的調(diào)用轉(zhuǎn)為-A系列API好處與局限性在NT上不損失任何功能

18、和性能,在9X上正常運(yùn)行支持的API不夠完整,有些需要自己重載并不能給9X帶來支持Unicode的能力出現(xiàn)太晚,大多數(shù)第三方軟件開發(fā)商不支持其它選擇雙版本可執(zhí)行程序自己寫自適應(yīng)層,開發(fā)支持Unicode的程序-續(xù),編程語言/開發(fā)環(huán)境對Unicode的支持C和C++wide char并不保證字符集和編碼方式ISO C99提供了可選的ISO10646支持必要時(shí)可借助IBM的ICUJava從一開始設(shè)計(jì)就支持Unicod

19、e早期UCS-2,后來通過UTF-16全面支持Delphi以兼容性為借口不在VCL中支持UnicodeTntTWare Delphi Unicode Controls開源社區(qū)的腳本語言積極支持Unicode,開發(fā)支持Unicode的程序-續(xù),Internet與UnicodeHTML用Unicode作為字符集Email信頭和信體的編碼設(shè)定IMAP協(xié)議用變種UTF-7傳送郵件夾名稱LDAPv3使用UTF-8傳送文本SF

20、TP使用UTF-8傳送文件名多語種域名解析系統(tǒng)IETF建議以后新發(fā)明的協(xié)議和URI表示法都支持UTF-8,相關(guān)資源,亂碼大全 - bluesea@smthCJK.INF & CJKV Information Procesing - Ken LundeUnicode與ISO10646 -曾士熊UTF-8 and Unicode FAQ (for Linux) – Markus KuhnDeveloping Intern

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論