perltw - 正□中文 Perl 指南 □迎□到 Perl 的天地! □ 5.8.0 版□始, Perl 具□了完善的 Unicode (□□□) 支援, 也□□支援了□e多拉丁□系以外的□□方式; CJK (中日□) 便是其中的一部份. Unicode 是□□性的□□, □□涵□e世界上所有的字符: 西方世界, □方世界, 以及□者□的一切 (希□文, □利□文, 阿拉伯文, 希伯□文, 印度文, 印地安文, 等等). 它也容□了多□作□系□□平□ (如 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 □源的□址
Perl 的首□ (由□□□公司□□) Perl □合典藏□ (Comprehensive Perl Archive Network) Perl □□□□一□

□□ Perl 的□址
正□中文版的□□□ Perl □藉 □□ Perl □□□□□ (也就是各大 BBS 的 Perl □□版)

Perl 使用者集□
□□ Perl 推□□一□ □立□□上聊天室

Unicode 相□□址
Unicode □□□□ (Unicode □□的制定者) Unix/Linux 上的 UTF-8 及 Unicode 答客□

中文化□□
<http://www.csie.ntu.edu.tw/~b7506051/mozilla/faq.html#faqglossary> <http://www.cpatch.org/> <http://www.linux.org.tw/CLDP/> Encode, Encode::TW, encoding, perluniintro, perlunicode Jarkko Hietaniemi <jhi@iki.fi> Autrijus Tang (唐宗□) <autrijus@autrijus.org>