2008/10/01

SJISからEUCへ変換

プログラムを組んでいると、ぶつかるのが文字コード。データベースとPHPを利用していると、データベースの文字コードとPHP書類のコードや出力する際のエンコードをすべて合わせていかないと文字化けします。日本語はEUC-JPが強いのですが、実際はshift-jisで書かれたものも多く、そこにフォームなどのcgiが絡んでいるとPHPでShift-Jis⇔EUCの変換を行う必要がある場面が多々あると思います。

こういう場合はこいつで解決。

mb_convert_variables("SJIS", "EUC-JP", $_POST);
mb_convert_variables("SJIS", "EUC-JP", $_GET);

↑これで$_POSTと$_GETの両方をEUCからSHIFT-JISに変換できます。

↓これはその逆

mb_convert_variables("EUC-JP", "SJIS", $_POST);
mb_convert_variables(
"EUC-JP", "SJIS", $_GET);
出力エンコードを変更する関数は以下の関数です。

mb_http_output('SJIS');
mb_internal_encoding('SJIS');

その他のサーバーの細かい設定には「ini_set()関数」を使用します。