文字コードを変えて一気に出力する方法(PHPのob_start)
- April 18th, 2008
- Posted in 開発ツール・技術
- Write comment
R*PADのメンテナンスしたときに使った方法をメモ。いつも忘れちゃうので。
PHPでソースコードはUTF-8で書きたいけど、このページだけShift-JISで出力したいってときありますよね(ケータイサイト作っているときとか)。
その場合、以下のような方法でやっています(いつもながら青い人に教えてもらいました!感謝!)。
<?php
header('Content-Type: text/html; charset=Shift_JIS');
ob_start();
?>
ここにShift-JISで出力したい内容をUTF-8で記述。
<?php
$output = ob_get_contents();
ob_end_clean();
echo mb_convert_encoding($output, "SJIS", "UTF-8");
?>
まぁ、なんということのないメモですが、かつての僕がそうであったように「どうやんだろ?」と思っている人もいるかなと・・・(ちなみに以前はこのページのソース自体をShift-JISで書いていましたよ・・・イタタ)。


http://www.ecoop.net/memo/2008-04-18-2.html
こんなかんじで .htaccess でやるのはどうでしょう?
.htaccess で php_value, php_flag を使って設定すると既存のソースを直接いじらずにフォルダ単位でまとめて文字コード変更できるので重宝してます。
AllowOverride 権限不足していたり CGI の場合は使えませんが…。