NAME
perltw - 正 體 中 文 Perl 指 南
DESCRIPTION
歡 迎 來 到 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 資
源 的 網 址
<http://www.perl.com/>
Perl 的 首 頁 (由 歐 萊 禮 公 司 維 護 )
Perl 綜 合 典 藏 網 (Comprehensive Perl Archive Network)
Perl 郵 遞 論 壇 一 覽 學 習 Perl 的 網 址
<http://www.oreilly.com.tw/chinese/perl/index.html>
正 體 中 文 版 的
歐 萊 禮 Perl 書 藉
<http://groups.google.com/groups?q=tw.bbs.comp.lang.perl>
臺 灣 Perl 連 線 討 論
區 (也 就 是 各 大
BBS 的 Perl 連 線 版
)
Perl
使 用 者 集 會
<http://www.pm.org/groups/asia.shtml#Taiwan> 臺
灣 Perl 推 廣 組 一 覽
<http://irc.elixus.org/> 藝 立 協
線 上 聊 天 室
Unicode
相 關 網 址
<http://www.unicode.org/>
Unicode 學 術 學 會 (Unicode 標 準 的 制 定 者 )
<http://www.cl.cam.ac.uk/%7Emgk25/unicode.html>
Unix/Linux 上 的 UTF-8 及 Unicode 答 客 問 中 文 化 資 訊 為 什 麼 叫
"正 體 中 文 " 不 叫 "繁 體 中 文 "?
<http://www.csie.ntu.edu.tw/~b7506051/mozilla/faq.html#faqglossary>
中 文 化 軟 體 聯
盟
<http://www.cpatch.org/>
Linux 軟 體 中 文 化 計 劃
<http://www.linux.org.tw/CLDP/>
SEE ALSO
Encode, Encode::TW, encoding, perluniintro, perlunicode
AUTHORS
Jarkko Hietaniemi <jhi [AT] iki.fi>
Autrijus Tang (唐 宗 漢 ) <autrijus [AT] autrijus.org> 跋 本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh