コメントの投稿
- PHP5.6.0で文字化け
PHP5.6.0alpha3を導入
php.ini-developmentをほとんど修正せず、動かしてみた。
文字化けするスクリプトが発生した。
原因は、php.iniのデフォルト値の変更で
default_charset = ""
から
default_charset = "UTF-8"
に変わっていた。
これは、
Content-type: header
で、送信されるためで、PHP5.6.0からは
default_charset = ""
は、非推奨とのこと。
各スクリプトで
ini_set('default_charset', 'SJIS');
の様に、設定すれば文字化けはなくなる。
HTTP/1.1では、
Content-type: header
に、従うことになっているようだ。
そのため
htmlのメタタグ
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
のcharsetは関係ない(無視する)
ini_set('default_charset', 'SJIS');
としなくても
header('Content-Type: text/html;charset=Shift_JIS');
でもいいが、バグ発生を考えると
スクリプトの先頭で
ini_set('default_charset', 'SJIS');
が、いいと考える
投稿内容の公開方法は、ご指定のメールアドレスに記載しています。