Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chinese World hmwang.

Similar presentations


Presentation on theme: "Chinese World hmwang."— Presentation transcript:

1 Chinese World hmwang

2 編碼標準 Encoding Standard
電腦是美國人發明的 • ASCII (American Standard Code for Information Interchange) 地方的電腦也要顯示中文 • Big5 • 台灣財團法人資訊工業策進會 在 1983 年為 五大中文套裝軟體 設計的編碼系統 • 繁體中文中最常用的電腦中文字符集標準 • 萬年遺毒

3 編碼標準 ASCII Big5 Ref: http://www.cns11643.gov.tw/AIDB/encodings.do
8 bits (理論上有 256 種可能) 0x00 ~ 0x7F 共 128 種字元 0x00 ~ 0x1F  control characters 0x20 ~ 0x7F  printable characters Big5 使用 2 bytes 來存放中文字 (理論上有 種可能) 實際上為與 ASCII 相容, 只能使用 個 [0x81 ~ 0xFE][0x40~0x7E, 0xA1 ~ 0xFE] = 126 * ( ) = 126 * 157 = 19782 Ref:

4 編碼標準 – Big5 標準字 (13502) 特殊符號 (441) 使用者造字 (5809) 常用字 次常用字 符號、控制碼 罕用符號
你我他的媽 次常用字 朸旯朿鐰飉 特殊符號 (441) 符號、控制碼 : ! 。∩ ♂ ├ 罕用符號 使用者造字 (5809) 三段

5 Big5的問題 使用者造字區 缺字 延伸版本繁雜 許功蓋問題 (\) 每個人都可以自己造字 於是自己造的字放到別人電腦上就看不到
堃、煊、栢、喆 延伸版本繁雜 倚天Big5延伸 Code Page 950 Big5+ 族繁不及備載.. 許功蓋問題 (\) 0x5C (\) 會有特殊意義 許(0xB35C)、功(0xA55C)、蓋(0xBB5C)

6 編碼標準 - Unicode 全世界共有上百種文字,因此有很多種不同的編碼系統 日本有 JIS,中國有 GB 2312,… etc 同樣的編碼在不同的編碼系統下顯示會不同 Unicode 組織就誕生了!!!!

7 Unicode VS ISO 10646 1991年左右,同時有兩個組織著手規範世界字碼
過不了多久,他們就互相體認到 「這個世界不需要兩套不同的單一字符集」 因此他們決定共用同樣的字碼 現在這兩個組織各自存在,各自互相砥礪 ref:

8 編碼標準 – ISO10646 and Unicode (1)
Goal 集結全球通用字符集,成一大聯集 UCS-4 Universal multiple-octet coded Character Set 4 bytes encoding (2^31) 128 Groups 256 Planes each group 256 Rows each plane 256 Cells each row BMP (UCS-2) Basic Multilingual Plane 00 group, 00 plane 65536 encoding space Why in BMP 若所有字集都在 BMP 中, 就可以只使用 2 bytes, 否則就要用 4 bytes, 不能混用

9 編碼標準 – ISO10646 and Unicode (2)
BMP

10 Unicode 的問題 Big Endian & Little Endian • U+4E59?(乙) • U+594E?(奎)
編碼空間浪費 • ASCII 字元通通都用 2byte 表示:0x00 0x41 「A」第一位永遠是0

11 Unicode Transformation Format
UTF: UCS/Unicode Transformation Format UTF-16(2、4 bytes) 將一個 32-bit ISO10646 字元轉成多個 16-bit Unicode Windows UTF-8(1~4 bytes) 將一個32-bit ISO10646 字元轉成多個 8-bit Unicode 將一個16-bit Unicode 字元轉成多個 8-bit Unicode 128個US-ASCII字元只需1 bytes編碼 帶有附加符號的拉丁文、希臘文、西里爾字母、亞美尼亞語、希伯來文、阿拉伯文、敘利亞文及它拿字母則需要 2 bytes 編碼 其他基本多文種平面(BMP)中的字元(這包含了大部分常用字)使用 3 bytes 編碼 其他極少使用的 Unicode 輔助平面的字元使用 4 bytes 編碼 Unix-like systems

12 非常經典的 UTF-8… 與既有系統的相容性 極高的辨識性 可以容納所有 Unicode 字元
只包含 ASCII 的字串是合法的 UTF-8 字串 NULL-terminated 字串處理 極高的辨識性 UTF-8字串可以由一個簡單的演算法可靠地識別出來。 可以容納所有 Unicode 字元 UTF-8 理論值可以容納百萬個字元 (實際是 個) (2012 年發佈的 Unicode 6.2 也才十一萬個字元) Unicode 與 UTF-8 之間的轉換很方便 一個字串在任何其它編碼中表現為合法的UTF-8的可能性很低,並隨字串長度增長而減小。

13 中文環境 (1) 要做到哪些事情 中文訊息 中文顯示 中文輸入 中文列印 中文處理 簡單 困難

14 中文環境 (2) 中文化方式 直接修改程式 18 chars 國際化(InternationalizatioN,i18n)
套件以排山倒海之勢而來只有真強者才能改完了Orz 18 chars 國際化(InternationalizatioN,i18n) Multi-language architecture 程式設計人員按照該架構的機制與準則寫程式, 便可支援各式各樣的語言 Locale (LOCALization Environment database) 程式根據使用者選擇的 locale 聯繫到不同資料庫, 進而提供該語言的支援 在地化(LocalizatioN,L10n) 在 i18n 的大架構下,加入「在地化」的特性 通常i18n只需做一次,而L10n要針對每個語言個別做

15 i18n & L10n i18n + L10n L10n only • 語言/翻譯 • 文化、書寫習慣 ➢ 名字和稱謂的位置
➢ 電話號碼,位址和國際郵遞區號的格式 ➢ 貨幣單位 ➢ 度量衡 ➢ 日期時間 ➢ 時區 ➢ 數字格式 L10n only • 內容在地化 • 道德在地化 • 文化價值 • 社會環境

16 中文環境 (3) locale in FreeBSD 地區性語言的資訊 效力優先性:LC_ALL > LC_* > LANG
LC_CTYPE 掌管該 locale 中所有字元的處理方式 LC_MESSAGES 掌管程式訊息輸出所用的語言 LC_TIME 時間格式 LC_NUMERIC 數字格式 LC_MONETARY 貨幣格式 LC_COLLATE 字母順序與特殊字元比較 LANG 語言顯示 效力優先性:LC_ALL > LC_* > LANG

17 中文環境 (4) 設定 locale Note: 可以寫在 .tcshrc/.bashrc 中登入後自動載入 csh/tcsh shell
setenv LC_CTYPE en_US.UTF-8 Bourne Shell export LC_CTYPE=en_US.UTF-8 Note: 可以寫在 .tcshrc/.bashrc 中登入後自動載入 /usr/share/locale/ 各國的 locale 資訊 命名規則: 語言_地區名.字元編碼名稱 zh_TW.UTF-8 zh_CN.GBK

18 中文環境 (5) 中文 Xwindow 中文 Terminal (Remote Login)
M$ Windows: putty, pietty, netterm, multi-term, telnet, …etc. X Window: xterm, rxvt, aterm, mterm,roxterm…etc. 設定好中文支援,登入後即可看到中文 setenv LC_CTYPE en_US.UTF-8 (csh/tcsh) export LC_CTYPE=en_US.UTF-8 (sh/bash) 顯示為英文但支援 multibyte characters 中文 Xwindow • 建立支援 L10n 中文環境 安裝中文字型 設定 Shell locale 環境 安裝中文輸入法 (Ex. ibus )

19 Steps ❑ 安裝中文字型 ❑ 安裝中文 Terminal Emulator ❑ 安裝中文輸入法 (Ex. ibus) ❑ 其他設定

20 安裝中文字型 (1) 兩大中文字型種類 點陣字型 (Bitmapped Font) 曲線描邊字型 (Outline Fonts)
BDF (Bitmap Distribution Format) 點陣分散格式 HBF (Hanzi Bitmap Font) 漢字點陣字體 PCF (Portable Compiled Font) 曲線描邊字型 (Outline Fonts) True Type Font (TTF) 點陣(黑白)=>放大鋸齒,記憶體大 曲線=>數學運算=>放大縮小都完美

21 安裝中文字型 (2) Font Path 安裝字型 % xset q % xset fp+ [directory]
/usr/local/lib/X11/fonts/misc/, /usr/local/lib/X11/fonts/TTF/, /usr/local/lib/X11/fonts/Type1/, /usr/local/lib/X11/fonts/75dpi/, /usr/local/lib/X11/fonts/100dpi/, /usr/local/lib/X11/fonts/local/ Font Path % xset q % xset fp+ [directory] % xset fp rehash 安裝字型 1. 直接從 Windows 下偷過去 2. 透過 ports 安裝字型檔案 使用 fc-cache 建立字型資料庫 修改各軟體設定使用別的字型

22 安裝中文字型 (3) Fireflyttf 透過 ports 安裝的都會自己跑 portmaster chinese/fireflyttf
% ttfm.sh --add xttfm /usr/local/share/fonts/TrueType/fireflysung.ttf % fc-cache –f –v /usr/local/lib/X11/fonts/TrueType/ portmaster chinese/fireflyttf –f –v --force --verbose

23 安裝中文字型 (4) 增加 Font Path Edit /etc/X11/xorg.conf /usr/local/share/fonts/TrueType/fireflysung.ttf /usr/local/lib/X11/fonts/TrueType/fireflysung.ttf Restart xwindow symbolic link Section "Files" ModulePath "/usr/local/lib/xorg/modules" FontPath "/usr/local/lib/X11/fonts/misc/" FontPath "/usr/local/lib/X11/fonts/TTF/" FontPath "/usr/local/lib/X11/fonts/OTF" FontPath "/usr/local/lib/X11/fonts/Type1/" FontPath "/usr/local/lib/X11/fonts/100dpi/" FontPath "/usr/local/lib/X11/fonts/75dpi/" FontPath "/usr/local/lib/X11/fonts/TrueType/" FontPath "/usr/local/lib/X11/fonts/local/" EndSection

24 安裝中文 Terminal rxvt-unicode aterm eterm ROXterm mlterm
/usr/ports/x11/rxvt-unicode aterm /usr/ports/chinese/aterm eterm /usr/ports/chinese/eterm ROXterm /usr/ports/x11/roxterm mlterm /usr/ports/x11/mlterm xlsfonts

25 ROXterm X11/rxvt-unicode roxterm-config xlsfonts

26 安裝中文輸入程式 Choices ibus-chewing(chinese/ibus-chewing)
ibus-pinyin(chinese/ibus-pinyin)

27 安裝 ibus 中文輸入程式 (1) ibus Intelligent Input Bus
% cd /usr/ports/textproc/ibus-chewing ; make install clean setenv LC_CTYPE zh_TW.UTF-8 (csh/tcsh) export LC_CTYPE=zh_TW.UTF-8 (sh/bash) Edit .xinitrc(或是可以 setenv in .cshrc/.bashrc) XIM=ibus GTK_IM_MODULE=ibus QT_IM_MODULE=xim XIM_PROGRAM="ibus-daemon" XIM_ARGS="--daemonize --xim"

28 安裝 ibus 中文輸入程式 (2) ibus相關設定 % ibus-setup (UTF-8) 可以加入 Chewing

29 安裝 ibus中文輸入程式 (3) Switch to chinese input: Ctrl -Space

30 References 中文碼介紹 FreeBSD Chinese HOWTO Introduction to i18n Unicode 介紹
FreeBSD Chinese HOWTO Introduction to i18n Unicode 介紹


Download ppt "Chinese World hmwang."

Similar presentations


Ads by Google