NAME 

perltw - 正體中文 Perl 指å—

DESCRIPTION 

歡迎來到 Perl 的天地!

從 5.8.0 版開始, Perl 具備了完善的 Unicode (è¬åœ‹ç¢¼) 支æ´, 也連帶支æ´äº†è¨±å¤šæ‹‰ä¸èªžç³»ä»¥å¤–的編碼方å¼; CJK (中日韓) 便是其中的一部份. Unicode 是國際性的標準, 試圖涵蓋世界上所有的字符: 西方世界, æ±æ–¹ä¸–界, 以åŠå…©è€…間的一切 (希臘文, 敘利亞文, 阿拉伯文, 希伯來文, å°åº¦æ–‡, å°åœ°å®‰æ–‡, 等等). 它也容ç´äº†å¤šç¨®ä½œæ¥­ç³»çµ±èˆ‡å¹³è‡º (如 PC åŠéº¥é‡‘å¡”).

Perl 本身以 Unicode 進行æ“作. 這表示 Perl 內部的字串資料å¯ç”¨ Unicode 表示; Perl 的函å¼èˆ‡ç®—符 (例如正è¦è¡¨ç¤ºå¼æ¯”å°) ä¹Ÿèƒ½å° Unicode 進行æ“作. 在輸入åŠè¼¸å‡ºæ™‚, 為了處ç†ä»¥ Unicode 之å‰çš„編碼方å¼å„²å­˜çš„資料, Perl æä¾›äº† Encode 這個模組, å¯ä»¥è®“ä½ è¼•æ˜“åœ°è®€å–åŠå¯«å…¥èˆŠæœ‰çš„編碼資料.

Encode 延伸模組支æ´ä¸‹åˆ—æ­£é«”ä¸­æ–‡çš„ç·¨ç¢¼æ–¹å¼ ('big5' 表示 'big5-eten'):

    big5-eten   Big5 編碼 (å«å€šå¤©å»¶ä¼¸å­—å½¢)
    big5-hkscs  Big5 + 香港外字集, 2001 年版
    cp950       å­—ç¢¼é  950 (Big5 + å¾®è»Ÿæ·»åŠ çš„å­—ç¬¦)

舉例來說, å°‡ Big5 ç·¨ç¢¼çš„æª”æ¡ˆè½‰æˆ Unicode, 祗需éµå…¥ä¸‹åˆ—指令:

    perl -Mencoding=big5,STDOUT,utf8 -pe1 < file.big5 > file.utf8

Perl 也內附了 ``piconv'', 一支完全以 Perl 寫æˆçš„字符轉æ›å·¥å…·ç¨‹å¼, 用法如下:

    piconv -f big5 -t utf8 < file.big5 > file.utf8
    piconv -f utf8 -t big5 < file.utf8 > file.big5

å¦å¤–, 利用 encoding 模組, ä½ å¯ä»¥è¼•易寫出以字符為單ä½çš„程å¼ç¢¼, 如下所示:

    #!/usr/bin/env perl
    # 啟動 big5 字串解æž; æ¨™æº–è¼¸å‡ºå…¥åŠæ¨™æº–錯誤都設為 big5 編碼
    use encoding 'big5', STDIN => 'big5', STDOUT => 'big5';
    print length("é§±é§");          #  2 (雙引號表示字符)
    print length('é§±é§');          #  4 (單引號表示ä½å…ƒçµ„)
    print index("諄諄教誨", "彖帢"); # -1 (ä¸åŒ…嫿­¤å­å­—串)
    print index('諄諄教誨', '彖帢'); #  1 (從第二個ä½å…ƒçµ„é–‹å§‹)

在最後一列例å­è£¡, ``è«„'' 的第二個ä½å…ƒçµ„與 ``è«„'' 的第一個ä½å…ƒçµ„çµåˆæˆ Big5 碼的 ``å½–''; ``è«„'' 的第二個ä½å…ƒçµ„則與 ``æ•™'' 的第一個ä½å…ƒçµ„çµåˆæˆ ``帢''. é€™è§£æ±ºäº†ä»¥å‰ Big5 碼比å°è™•ç†ä¸Šå¸¸è¦‹çš„å•題.

é¡å¤–的中文編碼

å¦‚æžœéœ€è¦æ›´å¤šçš„中文編碼, å¯ä»¥å¾ž CPAN (<http://www.cpan.org/>) 下載 Encode::HanExtra 模組. å®ƒç›®å‰æä¾›ä¸‹åˆ—ç·¨ç¢¼æ–¹å¼:
    cccii       1980 年文建會的中文資訊交æ›ç¢¼
    euc-tw      Unix 延伸字符集, åŒ…å« CNS11643 å¹³é¢ 1-7
    big5plus    中文數ä½åŒ–技術推廣基金會的 Big5+
    big5ext     中文數ä½åŒ–技術推廣基金會的 Big5e

å¦å¤–, Encode::HanConvert 模組則æä¾›äº†ç°¡ç¹è½‰æ›ç”¨çš„兩種編碼:

    big5-simp   Big5 正體中文與 Unicode 簡體中文互轉
    gbk-trad    GBK 簡體中文與 Unicode 正體中文互轉

若想在 GBK 與 Big5 之間互轉, è«‹åƒè€ƒè©²æ¨¡çµ„內附的 b2g.pl 與 g2b.pl 兩支程å¼, 或在程å¼å…§ä½¿ç”¨ä¸‹åˆ—寫法:

    use Encode::HanConvert;
    $euc_cn = big5_to_gb($big5); # 從 Big5 轉為 GBK
    $big5 = gb_to_big5($euc_cn); # 從 GBK 轉為 Big5

進一步的資訊

è«‹åƒè€ƒ Perl 內附的大é‡èªªæ˜Žæ–‡ä»¶ (ä¸å¹¸å…¨æ˜¯ç”¨è‹±æ–‡å¯«çš„), 來學習更多關於 Perl 的知識, ä»¥åŠ Unicode 的使用方å¼. ä¸éŽ, 外部的資æºç›¸ç•¶è±å¯Œ:

æä¾› Perl 資æºçš„ç¶²å€

<http://www.perl.com/>
Perl 的首é (ç”±æ­èŠç¦®å…¬å¸ç¶­è­·)
<http://www.cpan.org/>
Perl ç¶œåˆå…¸è—ç¶² (Comprehensive Perl Archive Network)
<http://lists.perl.org/>
Perl 郵éžè«–壇一覽

學習 Perl 的網å€

<http://www.oreilly.com.tw/chinese/perl/index.html>
正體中文版的æ­èŠç¦® Perl 書藉