Manpages

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 的 首 页 (由 欧 莱 礼 公 司 维 护 )

<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 书 藉
<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