- 追加された行はこの色です。
- 削除された行はこの色です。
[[Perl]] | [[Sjis.pm]] | [[EUCJP.pm]] | [[UTF2.pm]] | [[Char.pm]] | [[japerl.bat]]
&size(28){''require 'jacode.pl';''};
jacode.pl は jcode.pl の後継を目的として作成されたPerlライブラリです。
入出力するファイルの文字コードの符号化方式を変換するときに利用します。
入出力するファイルの符号化方式を変換するときに利用します。
&size(20){''jacode.plはこんなときに便利です''};
-jcode.plを使って書いたスクリプトがあるが、最少の改造でUTF-8をサポートするようにしたい。
-perlのバージョンを上げたら出力されるようになったjcode.plの警告メッセージを抑止したい。
-外部データをバイナリデータとして処理したい、UTF8フラグのことを気にせずスクリプトを作成したい。
&size(20){''インストール方法''};
以下のファイルを @INC に含まれるディレクトリ、例えば C:\Perl\site\lib にコピーするとインストール完了です。
-[[jacode.pl 2.13.4.10:http://cpansearch.perl.org/src/INA/jacode-2.13.4.10/jacode.pl]]
&size(20){''使い方''};
スクリプト先頭に以下の記述をします。
require 'jacode.pl';
&size(20){''サブルーチン''};
jacode:: と間違えないように注意してください。
正しくは jcode:: です。
これは jcode.pl に対するオマージュです。
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で記述されている
-現代的な書法なので近年のインタプリタで警告を受けない
-半角カナをサポートしている
-(このライブラリ単体で)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 のライセンスにあなたが違反することに
なります。
このソフトウェアはPerl4からPerl5.16まで幅広く使えます。
そのためこれまでのスクリプトやノウハウを活かすことができます。その一方で、
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]]
-参考ソフトウェア
--[[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]]
**コメントをください [#kca60d41]
#comment