TOP > FAQインデックス > 無理矢理 Jcode.pm 対応方法(無保証)



≫無理矢理 Jcode.pm 対応方法(無保証)

CGIで日本語文字コードを変換する際には jcode.pl が多く使用されてきた。
しかし、最近はネット上で Unicode(UTF-8)という文字コードが主流になりつつある。
jcode.pl は残念ながら Unicode(UTF-8)に対応していない。

そこで登場したのが Jcode.pm である。

しかし、Jcode.pm は基本的にサーバへのインストールが必要なモジュールのため、CGIの設置サーバ環境によって対応できない場合がある。


しかし、なんとか対応したい。

そこで、Jcode.pm を無理矢理感ありありにでもインストールして、Unicode(UTF-8)に対応する方法を紹介する。

* 当サイトにおいては、dopvSTAR* 以外ではこの方法を試してもスクリプトが対応していないので無意味です。
* この方法を試してうまく行かなくてもサポートはしません。あしからず。




念のための確認。
サーバの Perl のバージョンが 5 以上でなければ Jcode.pm は使えません。

さて、
まずはJcode.pmをダウンロードします。
Jcode-X.XX.tar.gz とか、Jcode-X.XX.zip というリンク(Xは数字でバージョン番号)をクリックしてアーカイブを入手します。
WindowsユーザならZIPの方が馴染みがあるでしょう。
解凍ソフトが対応していれば .tzr.gz でも中身は同じです。

ダウンロードしたアーカイブを解凍します。
解凍方法がわからない人は、Jcode.pmへの対応を諦めましょう。

先ほど解凍してできたファイルの一部を /ds/ に転送します
デフォルトの /ds/ の中(dsi.pl や dsa.cgi があるディレクトリ)に、先ほど解凍してできたファイル(とディレクトリ)の中から Jcode.pm と /Jcode/(とその中身一式) を転送します。
転送モードはバイナリです。
パーミションは、ファイルが全て 604。/Jcode/ ディレクトリは 705 です。

Jcode.pm にパスを通します
「パスを通す」というのは、Jcode.pm がどこにあるか明示するというような意味です。
dsa.cgi をテキストエディタで以下のように編集します。

・元のファイル
#-------------------------------------------------------------------------------
#------------------------------------------- Jcode.pm の対応自動判定&読み込み▼
if($FORM{'a'} =~ /rf(pg)?|sw[23]?|swse/ || $FORM{'logsearch'} ne '' || $FORM{'kw'} ne ''){
	eval 'use Jcode;';
	if($@){
		$jcnv = 'jcode::convert';
	}else{
		$jcnv = 'Jcode::convert';
	}
}
            ↓↓↓↓↓
・変更後
#-------------------------------------------------------------------------------
#------------------------------------------- Jcode.pm の対応自動判定&読み込み▼
if($FORM{'a'} =~ /rf(pg)?|sw[23]?|swse/ || $FORM{'logsearch'} ne '' || $FORM{'kw'} ne ''){
	use lib '.';
	eval 'use Jcode;';
	if($@){
		$jcnv = 'jcode::convert';
	}else{
		$jcnv = 'Jcode::convert';
	}
}
dsa.cgi のバージョンによって若干記述が違うかもしれませんが、
eval 'use Jcode;';
の前行に
use lib '.';
を入れます。

変更した dsa.cgi を転送・設置します
変更した dsa.cgi をFTPソフトで転送・設置します。




以上で、Jcode.pm が使えるようになったりするかと思います。

検索キーワード解析を利用してみて文字化けがなくなってれば成功でしょう\(^o^)/

*dsa.cgi を編集しているので、バージョンアップのたびに手動で修正が必要です。
*dopvCOMET* は Jcode.pmに対応していません。

TOP > FAQインデックス > 無理矢理 Jcode.pm 対応方法(無保証)
(C) bayashi.net