[[Perl]] | [[install_japerl_Framework.bat]] | [[japerl.bat]] | [[jacode.pl]] | [[Char.pm]] | [[Perl-Exactly]] | [[Strict-Perl]] | [[Modern-Open]] | [[Fake-Our]] | [[Stable-Module]] | [[SjisTk]] | [[DBD-mysqlPPrawSjis]] | [[DBD-PgPPSjis]] | [[Sjis.pm]] | [[EUCJP.pm]] | [[UTF2.pm]] &size(12){''require 'jcode.pl'; ⇒ ''}; &size(16){''use Jcode; ⇒ ''}; &size(20){''use Encode; ⇒ ''}; &size(28){''require 'jacode.pl';''}; jacode.pl は jcode.pl および Jcode の後継を目的として作成されたPerlライブラリです。 入出力するデータの符号化方式を変換するときに利用します。 &size(20){''jacode.plはこんなときに便利です''}; -Perlプログラミングを勉強したい。あるいは勉強し始めたい。 -文字コード変換プログラムとして参考にしたいプログラムを探している。 -手軽に改造できるNKFのようなプログラムが欲しい。 -jcode.plを使って書いたスクリプトがあるが、最少の改造でUTF-8をサポートするようにしたい。 -perlのバージョンを上げたら出力されるようになったjcode.plの警告メッセージを抑止したい。 -jcode.plに残されている2つのバグを回避したい。 -外部データをバイナリデータとして処理したい、UTF8フラグのことを気にせずスクリプトを作成したい。 -jcode.pl, Jcode.pm, Encode.pm の関数が混在している秘伝のソースをjacode.plひとつにまとめ、メンテナンスできるようにしたい。 -&size(16){''スクリプトをASCII以外の文字コードで記述したいとき⇒あの[[japerl.bat]]''}; -&size(16){''入出力時に文字コードを変換したいとき⇒この[[jacode.pl]]''}; &size(20){''インストール方法''}; 以下のファイルを @INC に含まれるディレクトリ、例えば C:\Perl\site\lib にコピーするとインストール完了です。 -[[jacode.pl 2.13.4.11:http://cpansearch.perl.org/src/INA/jacode-2.13.4.11/jacode.pl]] &size(20){''使い方''}; スクリプト先頭に以下の記述をします。 require 'jacode.pl'; jcode.pl ⇔ jacode.pl の切り替えはわずか「a」1タッチでできます。 &size(20){''サブルーチン''}; jacode:: と間違えないように注意してください。 正しくは jcode.pl と同じく jcode:: です。 長期に渡って運用・保守されるソフトウェアの場合、インタフェースを変えないようにすることは大切なことです。 jcode::getcode(\$line) jcode::convert(\$line, $ocode [, $icode [, $option]]) jcode::xxx2yyy(\$line [, $option]) &{$jcode::convf{'xxx', 'yyy'}}(\$line) jcode::to($ocode, $line [, $icode [, $option]]) jcode::jis($line [, $icode [, $option]]) jcode::euc($line [, $icode [, $option]]) jcode::sjis($line [, $icode [, $option]]) jcode::utf8($line [, $icode [, $option]]) jcode::jis_inout($in, $out) jcode::get_inout($string) jcode::cache() jcode::nocache() jcode::flushcache() jcode::flush() jcode::h2z_xxx(\$line) jcode::z2h_xxx(\$line) &{$jcode::z2hf{'xxx'}}(\$line) &{$jcode::h2zf{'xxx'}}(\$line) jcode::tr(\$line, $from, $to [, $option]) jcode::trans($line, $from, $to [, $option]) jcode::init() &size(20){''このライブラリの特徴''}; -jcode.plの上位互換ライブラリ -Perl4で記述されている -perl4, perl5 のどちらでも利用可能 -future-proof なソフトウェア -現代的な書法なので近年のインタプリタで警告を受けない -半角カナをサポートしている -(このライブラリ単体で)UTF-8をサポートしている -&jcode'convert が自前で対応していない変換は Encode::from_to が呼び出される -UTF8フラグの存在はこのライブラリによって隠蔽されている -過去のスクリプトやノウハウを利用できる -半角カナとUTF-8をサポートしているので文字コード判定ルーチンはもはや使い物にならない &size(20){''このライブラリの利点''}; -使用できるシステム環境が広い(XSが利用できなくとも、perl4でも実行可能) -使い方が簡単で利用者に負担をかけない -実装方法もシンプルなので内部を把握したり、改造するのも簡単 [[【参考】jcode.pl のライセンス:http://ja.wikipedia.org/wiki/Jcode.pl#.E5.A4.96.E9.83.A8.E3.83.AA.E3.83.B3.E3.82.AF]] &size(20){''jacode.plの説明''}; この jacode.pl は Perl4上でUTF-8を扱えるようにjcode.plを改造したものです。 実装を継承することにより機能(とインタフェース!)を継承するこの方法は、過去 においても、現在においても有効なので、おそらく将来においても有効であり続ける でしょう。 jacode.pl を @INC に設定されているディレクトリ、例えば C:\Perl\site\lib に格納するとインストール完了です。"require 'jcode.pl';" の代わりに "require 'jacode.pl';" とすることで、今までの jcode.pl の機能に加えて UTF-8 の変換ができるようになります。 UTF-8 を指定する場合は 'utf8' というように書きます。また 'jis','sjis', 'euc','utf8' のいずれでもないコードを指定して &jcode'convert を呼び出し たとき、Encode モジュールを利用できる環境であれば、Encode::from_to によっ てその変換を行います(これはまさしく小飼弾さんの Encode モジュール様さまです。 ときどき Encode モジュールの悪口を言うひとを見かけますが、そういうひとは許 しませんっ!)。 一点、気をつける必要があるのは文字コードの自動判定を行う &jcode'getcode です。UTF-8も半角カナも扱うため判定の精度は従来の jcode.pl よりも低く、 "下種の勘繰り"と大した違いがありません。なので文字コード変換をする場合は 変換前・変換後ともに指定すべきだと思われます。 また、WWW 上には、'jacode.pl' を 'jcode.pl' にリネームして、呼出し元の プログラムを書換えずにそのまま利用する方法が紹介されていますが、'jcode.pl' にリネームしたファイルはくれぐれも再配布されないよう、ご注意願います。 再配布すると歌代和正さんの jcode.pl のライセンスにあなたが違反することに なります。 【引用ここから】 コメントにも書いてありますが、再配布は商用、非商用を含めて完全に自由で す。再配布に際して、作者の許可を得る必要はありません。一言連絡していた だけると嬉しいとは思います。 ただし、機能的な変更を加えた場合は、それが明らかな形での配布を行って下 さい (Perl の ARTISTIC LICENCE の気持ちです)。もちろん、有用な機能であ ればオリジナルに組み入れることも可能です。 【引用ここまで】 このソフトウェアはPerl4からPerl5.20まで幅広く使えます。 そのためこれまでのスクリプトやノウハウを活かすことができます。その一方で、 Encodeモジュールの恩恵を受けることができるため、これからもずっと安泰です。 内部的に Encode モジュールが利用される場合もこのソフトウェアのインタフェー スは jcode.pl のままなので忌々しい UTF8 フラグに煩わされることもありません。 これから始める人にも、今までjcode.plを使っていた人にもおすすめです。 -関連情報 --[[jacode.pl ''(一次配布先)'' - search.cpan.org:http://search.cpan.org/~ina/jacode/]] --[[jcode.pl - Wikipedia:http://ja.wikipedia.org/wiki/Jcode.pl]] --[[[Tokyo.pm] jus Benkyoukai:http://mail.pm.org/pipermail/tokyo-pm/2002-March/001319.html]] (Tokyo-pm 保存書庫) --[[Dan Kogai 氏のインタビュー:http://log.utashiro.com/pub/2006/07/jkondo_a580.html]] (log.utashiro.com) --[[jcode.pl の私的な解説書:http://mikeneko.creator.club.ne.jp/~lab/kcode/jcode.html]] --[[FreeBSD port overview:http://portsmon.freebsd.org/portoverview.py?category=japanese&portname=jacode.pl]] --[[ports/156972: [NEW PORT] japanese/jacode.pl: Perl library for Japanese character code conversion:http://www.freebsd.org/cgi/query-pr.cgi?pr=156972]] --[[アマグラマーは車輪の再発明を恐れないで下さい。誰でも最初は初心者で、そして誰もが何度も車輪を再発明しているのです。:http://blog.livedoor.jp/dankogai/archives/50951049.html]] -参考ソフトウェア --[[Sjisソフトウェア:http://text.world.coocan.jp/TSNET/?Sjis.pm]] --[[EUCJPソフトウェア:http://text.world.coocan.jp/TSNET/?EUCJP.pm]] --[[UTF2ソフトウェア:http://text.world.coocan.jp/TSNET/?UTF2.pm]]