Shift_jis・・・

March 13, 2007,
tags: mbstring php sjis問題 文字コード


このエントリーをはてなブックマークに追加

PHPは文字コードがshift jisで書いてはいけない。
当たり前のことらしいですね。

でも、場合によってはHTMLがshift jisで書かれていることも多々あると思います。
ちょうど今日そんな場面に直面していました。

今回とった方法は.htaccessで
mbstring.http_input
mbstring.http_output

の設定をShift jisにしました。

これは簡単に言うとinputされる文字の文字コードをShift jisからEUCに変換してくれるらしいです。
outputはその逆で、PHPから送り出すときにShift jisとして送り出してくれるそうです。

これでファイルがたとえEUC出掛かれていてブラウザの文字コードがShift jisになっていても文字化けないそうです。

しかし、そんなやり方も通用しない場合が…

ということで方法その2
ob_start()関数を使うそうです。
これは本来ブラウザへの出力をバッファにためて、変数に入れてくれるそうです。これを使って一気にmb_convert_encodingをつかってShift jisに変換して、ob_end_flush()を使って表示させてあげればOK。

詳しいことはマニュアルを確認してみよう。

comments powered by Disqus