[PHP-users 14080] Re: includeするファイルを文字コード変換

MT php-users@php.gr.jp
Wed, 19 Mar 2003 10:05:05 +0900


Yoshida さん 宇野さん返答ありがとうございます。

僕の環境ではとりあえず、共通設定ファイル冒頭のhttp_outputとかの一連の処理を
関数にして、出力/入力の文字コードを指定できるようにして一応解決しました。

function InOut($in = 'EUC-JP',$out = 'SJIS')
{
        ini_set("output_buffering","on");
        ini_set("output_handler","mb_output_handler");
        ini_set("mbstring.http_input","auto");
        ini_set("mbstring.internal_encoding",$in);
        ini_set("mbstring.http_output","$out");
        mb_http_output($out);
        ob_start('mb_output_handler');
}

// 内部文字コード 出力文字コード指定
InOut('SJIS','SJIS');

根本的解決かどうかはわかりません。とりあえずためしに
パソコン 可能 など、sjisでスクリプト中に書いて出力
すると文字化けする字を書いてみましたが、エスケープし
なくても文字化けしませんでした。
perl から乗換え中なのでphpが賢いのか上記の処理でうまく
いっているのかよくわかりません。

今はインクルードしたファイルをほとんどそのまま実行して
いるからいいけど、eucで書いたスクリプト中で同じように
インクルードして実行して大丈夫かどうか。

eucのスクリプト→sjisテンプレート→eucのスクリプト



-- 
MT <akc@mutt.freemail.ne.jp>