[MyTools / Memoz / Jcode.pm ]

Jcode.pm


■ インストール

まず先に自分の環境に既に Jcode.pm がインストールされていないか調べる。方法は以下のいずれか:

無ければ以下に従ってインストール:

○A:コンパイラが使える環境の場合(未チェック):
Jcode-0.83.tar.gz を tar xvzf 等で解凍後、
  % perl Makefile.PL
  % make
  % make test
  % make install

○B:コンパイラが使えない環境の場合:
  1, Jcode-0.83.tar.gz をダウンロード
  2, 解凍
  3, それっぽい名前(libとか)のディレクトリを作る
  4, そこに Jcode.pm と Jcode ディレクトリ以下をコピー


■ 使い方

○ Bでインストールした場合、プログラム中でlibへパスを通す?必要がある。方法は以下のいずれか:

○ 構文

Jcode::convert(\$str[, $outcode, $incode, $option]);
→ $str を $outcode で指定された文字コードに変換。
  旧来の方式だが jcode.pl を置き換える場合これが一番手っ取り早い。

$str = Jcode($str)->[sjis|euc|jis|utf8];
→ $str を指定された文字コードに変換(※コード名は必ず定数で指定)

$length = $Jcode->jlength();
→ 文字列の「日本語での」長さを返す。

以下、$j=Jcode->new($str[, $incode]); 後に使うもの:

$j->euc; ... EUCに変換
$j->jis; ... JISに変換
$j->sjis; ... SJISに変換
$j->ucs2; ... UCS2に変換
$j->utf8; ... UTF8に変換
$j->h2z([$keep_dakuten]); ... 半角カナを全角カナに直す
(※$keep_dakuten を立てると濁点が単一文字として残される(例)ガ→カ゛)
$j->tr($from, $to); ... 日本語(EUC)を含む文字の置換。$j->nmatch でマッチ件数を取り出せる。
$j->set($str[, $incode]) ... 文字列を$strに変更


■ Tips

● 何故 Jcode.pm か?

 jcode.pl は Unicode(UTF-8)のエンコードに対応してないので。googleからの検索文字列はUTF-8なので、jcode.pl では日本語に戻せなく、どんな文字でヒットしたのか分からず夜も眠れない。

● コンパイルしないで入れた場合、非常に重い

 Jcode.pm を「B:コンパイラが使えない環境の場合」の方法で使うと、CGIのレスポンスが非常に遅くなるようです。Jcode.pm 全体で約400KBとサイズが大きいためと思われます。(うち、UCS2<->EUC のマッピング定義ファイルが355KB。)サーバに過度な負荷がかかることが予測されますので、チャットや投票など、書き込みが頻繁に行われるCGIの場合は、「A:コンパイラが使える環境の場合」の方法できちんとインストールしてから使うか、jcode.plを使いましょう。

 自分でインストールできない環境の場合は管理者に頼んでみましょう。「Jcode.pm 入れてくれないとサーバに負荷かけちゃうぞ」と脅せば納得してくれると思います(たぶん)。



[MyTools / Memoz / Jcode.pm ]