=encoding utf8 å¦‚æžœä½ ç”¨ä¸€èˆ¬çš„æ–‡å—編輯器閱覽這份文件, 請忽略文ä¸å¥‡ç‰¹çš„註記å—符. 這份文件是以 POD (ç°¡æ˜Žæ–‡ä»¶æ ¼å¼) 寫æˆ; é€™ç¨®æ ¼å¼æ˜¯ç‚ºäº†èƒ½è®“人直接讀å–, 而特別è¨è¨ˆçš„. 關於æ¤æ ¼å¼çš„進一æ¥è³‡è¨Š, è«‹åƒè€ƒ perlpod 線上文件. =head1 NAME perltw - æ£é«”ä¸æ–‡ Perl æŒ‡å— =head1 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 -MEncode -pe '$_= encode( utf8 => decode( big5 => $_ ) )' \ < 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 å¦å¤–,若程å¼ç¢¼æœ¬èº«ä»¥ utf8 編碼儲å˜ï¼Œé…åˆä½¿ç”¨ utf8 模組,å¯è®“程å¼ç¢¼ä¸å—串以åŠå…¶é‹ 算皆以å—符為單ä½ï¼Œè€Œä¸ä»¥ä½å…ƒç‚ºå–®ä½ï¼Œå¦‚下所示: #!/usr/bin/env perl use utf8; print length("駱é§"); # 2 (ä¸æ˜¯ 6) print index("諄諄教誨", "教誨"); # 2 (從 0 起算第 2 個å—符) =head2 é¡å¤–çš„ä¸æ–‡ç·¨ç¢¼ 如果需è¦æ›´å¤šçš„ä¸æ–‡ç·¨ç¢¼, å¯ä»¥å¾ž CPAN (L<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 =head2 進一æ¥çš„資訊 è«‹åƒè€ƒ Perl 內附的大é‡èªªæ˜Žæ–‡ä»¶ (ä¸å¹¸å…¨æ˜¯ç”¨è‹±æ–‡å¯«çš„), 來å¸ç¿’更多關於 Perl 的知è˜, ä»¥åŠ Unicode 的使用方å¼. ä¸éŽ, 外部的資æºç›¸ç•¶è±å¯Œ: =head2 æä¾› Perl 資æºçš„ç¶²å€ =over 4 =item L<http://www.perl.com/> Perl 的首é (ç”±æèŠç¦®å…¬å¸ç¶è·) =item L<http://www.cpan.org/> Perl 綜åˆå…¸è—網 (Comprehensive Perl Archive Network) =item L<http://lists.perl.org/> Perl 郵éžè«–壇一覽 =back =head2 å¸ç¿’ Perl çš„ç¶²å€ =over 4 =item L<http://www.oreilly.com.tw/product_perl.php?id=index_perl> æ£é«”ä¸æ–‡ç‰ˆçš„æèŠç¦® Perl 書藉 =back =head2 Perl 使用者集會 =over 4 =item L<http://www.pm.org/groups/taiwan.html> è‡ºç£ Perl 推廣組一覽 =item L<irc://irc.freenode.org/#perl.tw> Perl.tw 線上èŠå¤©å®¤ =back =head2 Unicode ç›¸é—œç¶²å€ =over 4 =item L<http://www.unicode.org/> Unicode å¸è¡“å¸æœƒ (Unicode 標準的制定者) =item L<http://www.cl.cam.ac.uk/%7Emgk25/unicode.html> Unix/Linux 上的 UTF-8 åŠ Unicode ç”å®¢å• =back =head2 ä¸æ–‡åŒ–資訊 =over 4 =item ä¸æ–‡åŒ–軟體è¯ç›Ÿ L<http://www.cpatch.org/> =item Linux 軟體ä¸æ–‡åŒ–計劃 L<http://www.linux.org.tw/CLDP/> =back =head1 SEE ALSO L<Encode>, L<Encode::TW>, L<perluniintro>, L<perlunicode> =head1 AUTHORS Jarkko Hietaniemi E<lt>jhi@iki.fiE<gt> Audrey Tang (å”é³³) E<lt>audreyt@audreyt.orgE<gt> =cut