PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
| Dir : /usr/share/perl5/pod/ |
| Server: Linux server1.ngambekcore.com 4.18.0-553.51.1.el8_10.x86_64 #1 SMP Wed Apr 30 04:00:07 EDT 2025 x86_64 IP: 159.198.77.92 |
| Dir : //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