内容

名称

perljp - 日本语 Perl 指南

説明

欢迎来到 Perl 世界!

从 Perl 5.8.0 开始,Unicode 支持得到了大幅增强,结果是除了拉丁字母之外的字符编码支持也加入了,包括 CJK(中文、日文、韩文)。Unicode 旨在用一种字符编码来处理全世界所有字符的标准规范,它已经包含了从东到西以及中间的字符(希腊字母、西里尔字母、阿拉伯字母、希伯来字母、梵文等等),以及以前由操作系统供应商自行定义的字符(PC 和 Macintosh)。

Perl 本身使用 Unicode 运行。Perl 脚本中的字符串字面量和正则表达式都基于 Unicode。为了进行输入输出,Perl 标准配备了支持以前使用的各种字符编码的模块“Encode”,可以轻松地进行 Unicode 与这些字符编码之间的相互转换。

目前 Encode 支持的字符编码如下:

7bit-jis      AdobeStandardEncoding AdobeSymbol       AdobeZdingbat
ascii             big5              big5-hkscs        cp1006
cp1026            cp1047            cp1250            cp1251
cp1252            cp1253            cp1254            cp1255
cp1256            cp1257            cp1258            cp37
cp424             cp437             cp500             cp737
cp775             cp850             cp852             cp855
cp856             cp857             cp860             cp861
cp862             cp863             cp864             cp865
cp866             cp869             cp874             cp875
cp932             cp936             cp949             cp950
dingbats          euc-cn            euc-jp            euc-kr
gb12345-raw       gb2312-raw        gsm0338           hp-roman8
hz                iso-2022-jp       iso-2022-jp-1     iso-8859-1
iso-8859-10       iso-8859-11       iso-8859-13       iso-8859-14
iso-8859-15       iso-8859-16       iso-8859-2        iso-8859-3
iso-8859-4        iso-8859-5        iso-8859-6        iso-8859-7
iso-8859-8        iso-8859-9        iso-ir-165        jis0201-raw
jis0208-raw       jis0212-raw       johab             koi8-f
koi8-r            koi8-u            ksc5601-raw       MacArabic
MacCentralEurRoman  MacChineseSimp    MacChineseTrad    MacCroatian
MacCyrillic       MacDingbats       MacFarsi          MacGreek
MacHebrew         MacIcelandic      MacJapanese       MacKorean
MacRoman          MacRomanian       MacRumanian       MacSami
MacSymbol         MacThai           MacTurkish        MacUkrainian
nextstep          posix-bc          shiftjis          symbol
UCS-2BE           UCS-2LE           UTF-16            UTF-16BE
UTF-16LE          UTF-32            UTF-32BE          UTF-32LE
utf8              viscii                              

(全114種類)

例如,要将字符编码为 FOO 的文件转换为 UTF-8,请执行以下操作:

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

此外,Perl 还附带了一个完全用 Perl 编写的字符编码转换实用程序 piconv,因此也可以执行以下操作:

piconv -f FOO -t utf8 < file.FOO > file.utf8
piconv -f utf8 -t FOO < file.utf8 > file.FOO

(jcode.pl|Jcode.pm|JPerl) 从迁移

在 5.8 之前的版本中,如果脚本是 EUC-JP,则至少可以处理字面量。此外,作为处理输入输出的模块,Jcode.pm(http://openlab.ring.gr.jp/Jcode/)和 perl4 的实用程序 jcode.pl 分别存在,并且许多人可能知道它们经常用于支持日语的 CGI。但是,无法正确处理日语正则表达式。

在 Perl 5.005 之前的版本中,存在一个专门针对日语的本地化版本 Jperl(http://homepage2.nifty.com/kipp/perl/jperl/index.html ※1)。此外,Mac OS 9.x/Classic 的 Perl,MacPerl 的日语版本也存在,名为 MacJPerl(https://habilis.net/macjperl/)。在这些版本中,除了 EUC-JP 之外,还可以直接处理 Shift_JIS,并且还可以处理日语正则表达式。

在 Perl 5.8 中,所有这些功能都可以在 Perl 本身中实现,不仅可以处理日语,还可以同时处理上述 114 种字符编码。此外,还可以轻松地从 CPAN 等地方获取新的字符编码模块。

※1: 由于托管服务的终止,目前无法查看。您可以从 Vector ( https://www.vector.co.jp/soft/win95/util/se098198.html ) 获取 Windows 版二进制文件,从 CPAN ( https://www.cpan.org/src/unsupported/4.036/jperl/ ) 获取 perl4 的补丁。

さらに詳しく

Perl 附带大量文档,详细介绍了 Perl 的新功能、Unicode 支持以及 Encode 模块的使用方法(遗憾的是,大多数文档都是英文)。您可以使用以下命令查看其中一部分。

perldoc perlunicode # PerlのUnicodeサポート全般
perldoc Encode      # Encodeモジュールに関して
perldoc Encode::JP  # うち日本語文字コードに関して

Perl 全般相关的 URL

https://www.perl5.cn/

Perl 主页

https://perldotcom.perl5.cn/

Perl 基金会运营的文集

https://www.cpan.org/

CPAN (Comprehensive Perl Archive Network)

https://metacpan.org/

MetaCPAN CPAN 的搜索引擎

https://lists.perl.org/

Perl 邮件列表集

https://perldoc.jp/

perldoc.jp Perl 的官方文档,模块文档的日语翻译

有助于学习 Perl 的 URL

http://www.oreilly.com.cn/

O'Reilly 公司的 Perl 相关书籍(简体中文)

https://www.oreilly.co.jp/catalog/

O'Reilly 公司的 Perl 相关书籍(日语)

Perl 相关的组织

https://www.pm.org/groups/asia.html

亚洲地区的 Perl Mongers (Perl 用户组) 列表

https://japan.perlassociation.org

一般社団法人 Japan Perl Association (JPA) 致力于推广 Perl 技术和文化的组织

Unicode 相关 URL

https://www.unicode.org/

Unicode 联盟 (Unicode 标准的制定机构)

https://www.cl.cam.ac.uk/%7Emgk25/unicode.html

Unix/Linux 的 UTF-8 和 Unicode 常见问题解答

https://wiki.kldp.org/Translations/html/UTF8-Unicode-KLDP/UTF8-Unicode-KLDP.html

Unix/Linux 的 UTF-8 和 Unicode 常见问题解答 (韩语翻译)

作者