perltw - æ£é«”䏿–‡ 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 碼比å°�處ç�†ä¸Šå¸¸è¦‹çš„å•�題.
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
Autrijus Tang (�宗漢) <autrijus@autrijus.org>
|
úÁËÌÁÄËÉ ÎÁ ÓÁÊÔÅ ðÒÏÓÌÅÄÉÔØ ÚÁ ÓÔÒÁÎÉÃÅÊ |
Created 1996-2026 by Maxim Chirkov äÏÂÁ×ÉÔØ ÎÏ×ÏÓÔØ, ðÏÄÄÅÒÖÁÔØ |