Home » July 2004 » Encode.pm版lib/MT/I18N.pm

Encode.pm版lib/MT/I18N.pm

Jcode.pmではなく、Encode.pmを使って実現したlib/MT/I18N.pmを作ったので公開します。

MT-I18N with Encode.pm - Ogawa Code

Perl 5.8.0以降を使っている場合、上記のURLから得られるI18N-encode.pmでlib/MT/I18N.pmを置き換えると、Movable Type日本語版で、Jcode.pmではなく、Encode.pmを使うことができます。これにより、文字化けが減少したり、性能が向上したりすることが期待されます。

Movable TypeのShift_JIS、EUC-JP、UTF-8以外の非ASCII charsetへの対応を視野に入れると、このI18N-encode.pmがひとつの叩き台になるのではないかと思います。チャレンジャーは是非使ってみてください。

このエントリーのトラックバックURL: http://as-is.net/mt/mt-tb.cgi/190

Links referred to this entry

Comments (6)

  1. いつもお世話になっております。
    先日、本エントリにTB 「random characters 文字化け・・」するとともに、Encode.pm版lib/MT/I18N.pm にチャレンジしたのですが・・・、
    Xrea.comさんのサーバ(Perl: 5.008004)では、encode.pm を利用する cgiスクリプトの動作は問題ありませんでした。動作確認のために、[Encode.pm 版 access cgi ver.3.02 http://atworks-online.net/ ] を使用いたしました。しかし、MT では、ブラウザでmt.cgiにアクセスすると、@INC 指定のPATHを参照します。また、/usr/lib/ 内も参照しますが、 Can't locate Encode.pm in @INC (・・ と返し、mt.cgiのアクセスエラーとなります。lolipopさんとは、サーバのインストール環境が異なるようです。Jperl.pmとは異なり、ホームディレクトリ内にEncode モジュールを設置する必要がないですし、サーバーによってアクセス不能となる問題は I18N.pmの編集だけで解決できるでしょうか。よろしくお願いいたします。因みに、Perl5.8 へのPATHは /usr/bin/perl ないし /usr/local/bin/perl です。

  2. mt-check.cgiの148行目あたりに以下のように加えて、mt-check.cgiを実行してみてください。

    [ 'Encode', 0, 1, 'Encode is required for Encoding conversion.' ]

    正しく見つかれば表示されるはずです。PerlへのPath(スクリプトの先頭行)は/usr/bin/perl、/usr/local/bin/perlの両方を試してみてください。見つかる方のPathをmt.cgi, mt-comments.cgiなどの先頭行でも指定する必要があります。

  3. ご教示いただきまして、ありがとうございます。
    早速、試してみます。MT 利用者の少なくないXrea.comさんのサーバに関することですので、結果についてご報告させていただきます。なお、初回質問で"Jperl.pm"とあるのは、Jcode.pmです。単純なミスで失礼いたしました。

  4. サーバ機によって、perlのバージョンが異なり、Perl: 5.008004 のサーバーは
    Your server has Encode installed (version 2.08).
    ですし、旧バージョンのperl 5.6.*がインストールされたwwwサーバは、もちろんencodeはありませんでした。実装状態が異なるサーバ(があると知らずに)でチェックしたので、混乱してしまいました。しかし、Encode.pm標準実装のサーバのmt.cgiへブラウザでアクセスしても、エラー(500)表示となります。

  5. (問題解決) ご指導ありがとうございました。2つ目のTBのとおり、cgiの編集
    変更前 (先頭行):
    #!/usr/bin/perl -w

    変更後 (先頭行、2行目)
    #!/usr/bin/perl
    require 5.008;
    後、ブラウザでのアクセスが可能となりました。
    今後ともよろしくお願いいたします。

  6. I18N-encode.zip、MT3151-jaとMT317-jaのI18N.pmを比較したところ変化が無かったようなので、3.17でも利用させてもらってます。
    「~」を多用するのでこれがないとかっこわるい……

Post a comment

Remember me?