php.ini

記述したソースファイルのエンコードを決めるのが

mbstring.internal_encoding

ブラウザに表示するのが

mbstring.http_output

あとは

// output_bufferingが定義されていたら、すべてOffにする
// これをしておかないと、すでに設定済みのob_startも効いてしまいます。
//while (@ob_end_clean());

// このページの出力文字コードを指定し、output_buffering,mb_output_handlerを再設定する
// ob_startを実行する前にmb_http_outputで文字コードを設定しておくと、
// その文字コードへの変換が有効となる。
mb_http_output(Charset);
ini_set("default_charset", Charset);
ob_start('mb_output_handler');


な感じにソースの先頭に書いておけばとりあえず回避できる。

http://tsuttayo.sytes.net/php/char_trn/