GNU/Linux |
CentOS 5.2 |
|
![]() |
perltw(1) |
![]() |
perltw − æ£é«ä¸æ Perl æå
æ¡è¿ä¾å° Perl ç天å°!
å¾ 5.8.0 çéå§, Perl å·åäºå®åç Unicode (è¬å碼) æ¯æ´, ä¹é£å¸¶æ¯æ´äºè¨±å¤æä¸èªç³»ä»¥å¤ç編碼æ¹å¼; CJK (䏿¥é) 便æ¯å¶ä¸çä¸é¨ä»½. Unicode æ¯åéæ§çæ¨æº, è©¦åæ¶µèä¸ç䏿æçå符: 西æ¹ä¸ç, æ±æ¹ä¸ç, 以åå©èéçä¸å (å¸èæ, æå©äºæ, é¿æä¼¯æ, å¸ä¼¯ä¾æ, å°åº¦æ, å°å°å®æ, çç). å®ä¹å®¹ç´äºå¤ç¨®ä½æ¥- 系統èå¹³èº (å¦ 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/>
Encode, Encode::TW, encoding, perluniintro, perlunicode
Jarkko Hietaniemi <jhi@iki.fi>
Autrijus Tang (å宿¼¢) <autrijus@autrijus.org>
![]() |
perltw(1) | ![]() |