2015-01-22 php
昔のサイトだと内部エンコーディングが UTF-8、出力が SJIS とかあって、その場合は php.ini で以下みたいに設定してあげるとそのように出力できる。
default_charset Shift_JIS output_handler mb_output_handler mbstring.language Japanese mbstring.internal_encoding UTF-8 mbstring.encoding_translation On mbstring.http_output SJIS
で、最近だと特定ディレクトリ以下は出力も UTF-8 にしたいってケースが結構ある。その場合は .htaccess に
php_value default_charset UTF-8 php_value output_handler pass php_value mbstring.language Japanese php_value mbstring.internal_encoding UTF-8 php_value mbstring.encoding_translation Off php_value mbstring.http_output pass
と書いてあげればいいんだけど、管理者権限なかったり他いろいろあって .htaccess が使えない場合が多い。そんなときはスクリプト先頭に以下を記述すればOK。
<?php // http_output は PHP 5.6 から非奨励だから空文字に ini_set( "default_charset", "UTF-8" ); ini_set( "mbstring.http_output", "" );
本来であれば output_handler も mbstring.encoding_translation も無効にしたいんだけど、http://php.net/manual/ja/ini.list.php を見るとどちらも PHP_INI_PERDIR となっているためスクリプトからは変更できないから諦める。
娘と2人生活 ≫