[[Perl]] | [[Sjis.pm]] | [[EUCJP.pm]] | [[jacode.pl]] | [[Char.pm]] &size(28){''404 Flag Not Found''}; &color(red){ ''The UTF8 flag was not found -- unless you decoded that of multibyte code using this software.''}; &size(24){''use UTF2;''}; UTF2ソフトウェアはUTF-8を扱うための Perl プログラムです。Sjisソフトウェアと同様のコンセプトによって Perl のマルチバイト文字対応を行います。つまり、外部コードであるUTF-8そのものを内部コードとして処理します。なお、ここでのUTF-8はRFC3629のUTF-8です。もしCESU-8(Compatibility Encoding Scheme for UTF-16: 8-Bit) あるいは Modified UTF-8 を扱いたい場合は [[OldUTF8ソフトウェア:http://search.cpan.org/dist/Char-OldUTF8/]] を使用することができます。 Sjisソフトウェアと異なる点は大きく3つあります。 -マルチバイト文字の先行するバイト列 --Sjisの場合 [\x81-\x9F\xE0-\xFC] のところ (?:[\xC2-\xDF]|[\xE0-\xE0][\xA0-\xBF]|[\xE1-\xEC][\x80-\xBF]|[\xED-\xED][\x80-\x9F]|[\xEE-\xEF][\x80-\xBF]|[\xF0-\xF0][\x90-\xBF][\x80-\xBF]|[\xF1-\xF3][\x80-\xBF][\x80-\xBF]|[\xF4-\xF4][\x80-\x8F][\x80-\xBF]) になります -マルチバイト文字の扱い --2バイト目が ASCII の値と重ならずメタ文字が出現しないため、エスケープが不要です --2バイト目以降に英字が出現しないため uc(), lc() 関数はそのまま利用できます -マルチバイトアンカーリング処理 --1バイト目と2バイト目以降の値が重ならないため、マルチバイトアンカーリング処理が不要です &size(20){''主な特徴''}; Perl関連の成功したソフトウェアからいいところをとってきました。 -互換性: Perl4→Perl5 のように追加によって新機能を実現している --文字列の長さや文字の位置を示す単位は今までどおりオクテット --文字単位の関数は別の名前で新設(UTF2::length, UTF2::substr など) -制御性: JPerl のようにプログラマの意図を汲む --UTF-8そのままの値を扱うことができる --UTF8フラグがない --オブジェクト指向は導入していない(これは利点!!) -可搬性: jcode.pl のように単体のPerlスクリプト --他に必要なモジュールがない --perl5.005でも実行することができる --それなのにperl5.005のXSに束縛されない --MacOS上でMacJPerlの機能を実現する -欠点:残念ながら... --Latin-1を扱えない(UTF8フラグをなくした代償として) &size(20){''インストール方法''}; 以下のファイルを C:\Perl\site\lib にコピーするとインストール完了です -[[UTF2.pm 0.74 (ソースコードフィルタ):http://cpansearch.perl.org/src/INA/Char-UTF2-0.74/UTF2.pm]] -[[Eutf2.pm 0.74 (ランタイムルーチン):http://cpansearch.perl.org/src/INA/Char-UTF2-0.74/Eutf2.pm]] &size(20){''関連情報''}; -[[jacode.pl]] 文字コードの変換には jacode.pl が便利です -[[Char.pm]] 文字コードに煩わされずに文字を扱いたいときに便利です -[[Ruby on Perl(s):http://www.rubyist.net/~matz/slides/yapc2006/]] -[[UTF-8フラグの立て方・降ろし方:http://www.rakunet.org/tsnet/TSabc/18/546.html]] -[[Perl::utf8.pm:http://blonde.ddo.jp/object/glob.pl/2010/11/18/21/17/12]]