PK œqhYî¶J‚ßFßF)nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/ $#$#$#

Dir : /proc/thread-self/root/proc/self/root/proc/self/root/usr/share/perl5/pod/
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64
IP: 209.182.202.254
Choose File :

Url:
Dir : //proc/thread-self/root/proc/self/root/proc/self/root/usr/share/perl5/pod/perlcn.pod

=encoding utf8

如果你用一般的文字编辑器阅览这份文件, 请忽略文中奇特的注记字符.
这份文件是以 POD (简明文件格å¼) 写æˆ; è¿™ç§æ ¼å¼æ˜¯ä¸ºäº†èƒ½è®©äººç›´æŽ¥é˜…读,
而特别设计的. 关于此格å¼çš„进一步信æ¯, 请å‚考 perlpod 线上文件.

=head1 NAME

perlcn - 简体中文 Perl 指å—

=head1 DESCRIPTION

欢迎æ¥åˆ° Perl 的天地!

从 5.8.0 版开始, Perl 具备了完善的 Unicode (统一ç ) 支æ´,
也连带支æ´äº†è®¸å¤šæ‹‰ä¸è¯­ç³»ä»¥å¤–çš„ç¼–ç æ–¹å¼; CJK (中日韩) 便是其中的一部份.
Unicode 是国际性的标准, 试图涵盖世界上所有的字符: 西方世界, 东方世界,
以åŠä¸¤è€…间的一切 (希腊文, å™åˆ©äºšæ–‡, 亚拉伯文, 希伯æ¥æ–‡, å°åº¦æ–‡,
å°åœ°å®‰æ–‡, 等等). 它也容纳了多ç§ä½œä¸šç³»ç»Ÿä¸Žå¹³å° (如 PC åŠéº¦é‡‘å¡”).

Perl 本身以 Unicode 进行æ“作. 这表示 Perl 内部的字符串数æ®å¯ç”¨ Unicode
表示; Perl 的函å¼ä¸Žç®—符 (例如正规表示å¼æ¯”对) 也能对 Unicode 进行æ“作.
在输入åŠè¾“出时, 为了处ç†ä»¥ Unicode 之å‰çš„ç¼–ç æ–¹å¼å­˜æ”¾çš„æ•°æ®, Perl
æ供了 Encode 这个模å—, å¯ä»¥è®©ä½ è½»æ˜“地读å–åŠå†™å…¥æ—§æœ‰çš„ç¼–ç æ•°æ®.

Encode 延伸模å—支æ´ä¸‹åˆ—简体中文的编ç æ–¹å¼ ('gb2312' 表示 'euc-cn'):

    euc-cn	Unix 延伸字符集, 也就是俗称的国标ç 
    gb2312-raw	未ç»å¤„ç†çš„ (低比特) GB2312 字符表
    gb12345	未ç»å¤„ç†çš„中国用ç¹ä½“中文编ç 
    iso-ir-165	GB2312 + GB6345 + GB8565 + 新增字符
    cp936	å­—ç é¡µ 936, 也å¯ä»¥ç”¨ 'GBK' (扩充国标ç ) 指明
    hz		7 æ¯”ç‰¹é€¸å‡ºå¼ GB2312 ç¼–ç 

举例æ¥è¯´, å°† EUC-CN ç¼–ç çš„æ¡£æ¡ˆè½¬æˆ Unicode, 祗需键入下列指令:

    perl -Mencoding=euc-cn,STDOUT,utf8 -pe1 < file.euc-cn > file.utf8

Perl 也内附了 "piconv", 一支完全以 Perl 写æˆçš„字符转æ¢å·¥å…·ç¨‹åº, 用法如下:

    piconv -f euc-cn -t utf8 < file.euc-cn > file.utf8
    piconv -f utf8 -t euc-cn < file.utf8 > file.euc-cn

å¦å¤–, 利用 encoding 模å—, ä½ å¯ä»¥è½»æ˜“写出以字符为å•ä½çš„程åºç , 如下所示:

    #!/usr/bin/env perl
    # å¯åŠ¨ euc-cn 字串解æž; 标准输出入åŠæ ‡å‡†é”™è¯¯éƒ½è®¾ä¸º euc-cn ç¼–ç 
    use encoding 'euc-cn', STDIN => 'euc-cn', STDOUT => 'euc-cn';
    print length("骆驼");	     #  2 (åŒå¼•å·è¡¨ç¤ºå­—符)
    print length('骆驼');	     #  4 (å•å¼•å·è¡¨ç¤ºå­—节)
    print index("谆谆教诲", "蛔唤"); # -1 (ä¸åŒ…å«æ­¤å­å­—符串)
    print index('谆谆教诲', '蛔唤'); #  1 (从第二个字节开始)

在最åŽä¸€åˆ—例å­é‡Œ, "è°†" 的第二个字节与 "è°†" 的第一个字节结åˆæˆ EUC-CN
ç çš„ "è›”"; "è°†" 的第二个字节则与 "æ•™" 的第一个字节结åˆæˆ "唤".
è¿™è§£å†³äº†ä»¥å‰ EUC-CN ç æ¯”对处ç†ä¸Šå¸¸è§çš„问题.

=head2 é¢å¤–的中文编ç 

如果需è¦æ›´å¤šçš„中文编ç , å¯ä»¥ä»Ž CPAN (L<http://www.cpan.org/>) 下载
Encode::HanExtra 模å—. 它目å‰æ供下列编ç æ–¹å¼:

    gb18030	扩充过的国标ç , 包å«ç¹ä½“中文

å¦å¤–, 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.cn/index.php?func=booklist&cat=68>

简体中文版的欧莱礼 Perl 书藉

=back

=head2 Perl 使用者集会

=over 4

=item L<http://www.pm.org/groups/asia.html>

中国 Perl 推广组一览

=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

=head1 SEE ALSO

L<Encode>, L<Encode::CN>, L<encoding>, L<perluniintro>, L<perlunicode>

=head1 AUTHORS

Jarkko Hietaniemi E<lt>jhi@iki.fiE<gt>

Audrey Tang (å”凤) E<lt>audreyt@audreyt.orgE<gt>

=cut