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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

5、碼,擴充部分在b7=1的區(qū)域,避開控制符,與ASCII兼容分為多個擴展集,適應不同文字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.關于字符集、編碼的一系列相關標準和處理技術的總和,Unicode Technology-續(xù),Unicode的起源與發(fā)展發(fā)起者:Xerox、Apple、IBM、Microsoft、Sun、DEC、Novell等Unicode與ISO-10646的競爭ISO 10646:4個8位元定長,避開控制區(qū)C0和C1,不要求b7都為0或1Unicod

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

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

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

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

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

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

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

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

16、為內部編碼,KDE通過QString支持Unicodescim輸入平臺全面支持Unicode,開發(fā)支持Unicode的程序-續(xù),Windows的雙模API文檔中的原型BOOL SetWindowText(HWND hWnd, LPCTSTR lpString);實際原型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上直接調用-W API在9X上截取-W系列API的調用轉為-A系列API好處與局限性在NT上不損失任何功能

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

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

20、TP使用UTF-8傳送文件名多語種域名解析系統(tǒng)IETF建議以后新發(fā)明的協(xié)議和URI表示法都支持UTF-8,相關資源,亂碼大全 - 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論