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
−MEncode −pe '$_= encode( utf8 => decode(
big5 => $_ ) )' \
< 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
å¦å¤ï¼è¥ç¨å¼ç¢¼æ¬èº«ä»¥ utf8 編碼å²åï¼éåä½¿ç¨ utf8 模çµï¼å¯è®ç¨å¼ç¢¼ä¸å串以åå¶é ç®ç以å- 符çºå®ä½ï¼èä¸ä»¥ä½åçºå®ä½ï¼å¦ä¸æç¤ºï¼
#!/usr/bin/env
perl
use utf8;
print
length("é§±é§"); #
2 (䏿¯ 6)
print
index("è«è«æèª¨",
"æèª¨"); # 2
(å¾ 0
èµ·ç®ç¬¬ 2
åå符)
妿éè¦æ´å¤çä¸æç·¨ç¢¼, å¯ä»¥å¾ CPAN (<https://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 çä½¿ç¨æ¹å¼. ä¸é, å¤é¨çè³æºç¸ç¶è±å¯:
<https://www.perl.org/>
Perl çé¦é
<https://www.perl.com/>
ç± Perl åºéææçéçæç« 輯é
<https://www.cpan.org/>
Perl ç¶åå¸èç¶² (Comprehensive Perl Archive Network)
<https://lists.perl.org/>
Perl éµéè«å£ä¸è¦½
<http://www.oreilly.com.cn/index.php?func=booklist&cat=68>
æ£é«ä¸æççæè禮 Perl æ¸è
<https://www.pm.org/groups/taiwan.html>
èºç£ Perl æ¨å»£çµä¸è¦½
<irc://chat.freenode.org/#perl.tw>
Perl.tw ç·ä¸è天室
<https://www.unicode.org/>
Unicode å¸è¡å¸æ (Unicode æ¨æºçå¶å®è)
<http://www.cl.cam.ac.uk/%7Emgk25/unicode.html>
Unix/Linux ä¸ç UTF−8 å Unicode ç客å
䏿åè»é«è¯ç
<http://www.cpatch.org/>
Encode, Encode::TW, perluniintro, perlunicode
Jarkko Hietaniemi <[email protected]>
Audrey Tang (åé³³) <[email protected]>