1 / 30

缺字相關技術介紹

缺字相關技術介紹. 缺字問題. 既有漢字交換碼的不足造成電腦缺字問題 電腦缺字的嚴重後果 難以管理缺字,特別是輸入資料時 交換碼的使用者造字區通常沒有足夠的空間容納缺字 使用者造字無法共享 有些缺字其實是一些標準字的異體字 ( 異寫字 ) ,異體字會會文字擷取與處理造成問題. Unicode 補完計畫. 緣由 櫻花輸入法 Big5 與 Unicode. 緣由. … 不是說日文網站是 ShiftJIS 碼,跟 BIG-5 不一樣嗎?那為什麼把日本網站的文章複製貼上到 BBS 上後,假名會變成「 ? 」,但是有些漢字卻留下來了 !?

randi
Download Presentation

缺字相關技術介紹

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 缺字相關技術介紹

  2. 缺字問題 • 既有漢字交換碼的不足造成電腦缺字問題 • 電腦缺字的嚴重後果 • 難以管理缺字,特別是輸入資料時 • 交換碼的使用者造字區通常沒有足夠的空間容納缺字 • 使用者造字無法共享 • 有些缺字其實是一些標準字的異體字(異寫字),異體字會會文字擷取與處理造成問題

  3. Unicode補完計畫 • 緣由 • 櫻花輸入法 • Big5與Unicode

  4. 緣由 • …不是說日文網站是 ShiftJIS 碼,跟 BIG-5 不一樣嗎?那為什麼把日本網站的文章複製貼上到 BBS 上後,假名會變成「?」,但是有些漢字卻留下來了!? • …不是說內碼不一樣嗎,那為什麼有些漢字好像沒有問題呢!?

  5. 原因 • 真正的問題在於 Big5 的缺字。當某個字 ShiftJIS 有,但是 Big5 沒有時,那個字轉換成 Big5,就會變成問號。

  6. 寬字元 vs多位元組 • UTF-8 : 英文 1 byte 中文 3 bytes • UTF-16:兩個 UTF-8 字元組合而成 • 缺字構字式為Big5的子集合

  7. 寬字元 vs多位元組 • 寬字元在不同作業系統上所呈現的binary形式可能完全不同。 • 在Windows平台用Unicode字碼所建立的索引無法直接轉移至GNU/Linux使用。 • 常用寬字元的編碼有UCS2及UCS4的分別 • UTF-8可以在不同系統上有一致的呈現方式。 • UTF-8在中文處理上極耗費資源且會影響效率。

  8. 現有工具 • International Components for Unicode • IBM贊助的開放原始碼程式元件計畫 • For C++/Java • GNU/Linux Glibc iconv interface • Kii Ali,陳寬達,BGConv 1034 (含詞彙轉換) • Microsoft MLang API • Internet Explorer 所使用的轉碼工具 • 支援語系偵測(Code Page Detection) • 支援語系轉換(Conversion) • 更多...

  9. 櫻花輸入法 • 作者:Roy Hu • Windows 造字檔格式的日文字型 • 以通用輸入法編輯工具編寫的日文輸入法 • Win95~WinXP/2000

  10. Big5, 倚天擴充字集 • 2 Bytes • 基本字集 • 常用字 5,401 個 • 次常用國字 7,693 個 • 符號 471 個 • 倚天擴充字集(使用者造字區) • 日文平假名、日文片假名、俄文字母、圈號數字、雙線表格、以及七個常用外字 (碁、銹、裏、墻、恒、粧、嫺)

  11. 中推會的嘗試 • Big5+ • Big5、倚天擴充字集與 Unicode 2.0 下所有漢字 • 推出時間太晚 • Big5e • 放棄倚天擴充字集 • 採用意願低 • 使用使用者造字區,沒有真正與 Unicode 關聯

  12. Big5 in MS Windows • 沒有採用 • 日文平假名 • 日文片假名 • 俄文字母 • 圈號數字 • CP950/MS950

  13. 手術前 • 倚天擴充字集在Big5使用者造字區,轉換成Unicode時,被對應到Unicode使用者造字區 • 所以Unicode日文無法轉換到Big5日文

  14. 手術後 • 修改 Windows 裡 Big5 與 Unicode 之間的對應表,把 Big5 的日文假名字碼,對應到 Unicode 的正確日文字碼上 • Win2K/XP的字型是Unicode-based,所以有日文 • Win95/98則無

  15. 問題解決了嗎? • 僅針對Unicode既有字形(Glyph) • 造字無法交換 • 沒有考慮異體字問題 • 沒有考慮文字的時空座標

  16. 漢字構形資料庫 • 對於漢字字形結構的制式定義 • 包含有 • 漢字 • 部件 • 字根 • 連結符號 • 構字規則 • 以拆解完成之漢字構字式

  17. 漢字構形資料庫 字型檔組成 共42469

  18. 取得字型 Mingliu.ttc&Cdpeudc.tte 外字集三hzcdp03m.ttf 酉 每 構字式由部件與一般字組成編碼為Big5

  19. 參考資料 • http://i18n.linux.org.tw/li18nux • 寬字元與多位元組字元(謝東翰 ,小虫)http://xcin.linux.org.tw/i18n/pc2000/p3/index.html • http://www.li18nux.org/ • http://www.icu4c.org • http://www.icu4j.org • BGconv 1.0.34 簡繁轉換工具ftp://ftp.ntu.edu.tw/cpatch/patchutil/bgconv/bgconv1034.txt • MSDN : Unicode and Character Sets • MSDN : MLang

  20. 系統架構 奇王尔異宀玉 Web page filter In memoryRendered pages Data withglyph expr. LiveConverter BatchConverter 奇珎異宝 Static pageswithglyph expr. Web server Web Server Rendered pages Client Browser Content Provider

  21. Glyph Rendering Engine • Pick up the accurate glyph from pre-composed glyphs or construct it ad hoc and display it on the screen • Components • a mapping table that correlate a glyph expression with a missing character glyph holder • a mechanism that differentiates between the variants of a missing character • a collection of font files, mostly in the formats like TrueType, PostScript Type1

  22. Glyph Rendering Engine • Current design • CGI based (C/C++): heavy overhead • Outdated font files • Outdated mapping table • Lack of caching mechanism • Output format: GIF • Future design • Thread based (Java) • Up-to-date fonts and mapping tables • Caching mechanism • Output format: GIF/SVG/XML/PNG • Glyph Database Synchronization

  23. 字型讀取工具(Font Rasterizer) • FreeType2 • Java2 2D

  24. FreeType2 • Open Source Project • Works on almost every platform • Need additional rebuild to handle asian fonts like MingLiu.ttc(細明體) • Enable Bytecode Interpreter(針對筆畫組字字型,在Win以外平台會破碎) • Can display EUDC • Powerful but not friendly

  25. Broken Glyph (on Win2K)

  26. Normal Glyph (on Xwin)

  27. Java 2D Text • Open Source (but not GPL, BSD-like) • Cross platform • Built-in font rasterizer • Claimed to support EUDC at JDK 1.4.1+[2] • However, has problems displaying EUDC and CDP Hanzi fonts • Possibly because the insufficient Big5 to Unicode mapping in Java charmap • Also possibly because the insufficient Unicode to Big5 mapping in CDP Hanzi fonts

  28. Why display CDP Hanzi using Java • Reduce the impacts of deploying CDP to various platforms • More easy to integrate with popular free applications like OpenOffce.org • Smooth learning curve for DL team.

  29. Workaround • Design a simple Java Wrapper of FreeType2 • Function • It renders glyphs as images • Target platform • Windows • Linux • FreeBSD • Open Source • Bug Tracing/Debugging • Porting to other platforms by volunteers

  30. References • David Turner, FreeType Glyph Conventions Version 2.1http://freetype.sourceforge.net/freetype2/docs/glyphs/index.html • Bugs Fixed in J2SE 1.4.1 Platform:Cannot display User Defined Characters with separate EUDC fonts on Windowshttp://developer.java.sun.com/developer/bugParade/bugs/4509426.html • Glyph Database for Hanzi Characterhttp://www.sinica.edu.tw/~cdp

More Related