CakePHP 特定のブラウザでの文字化け対処方法

またまたメモ的なアレ。

CakePHPで開発していて、私の環境ではなぜかMac版chromeでだけ文字化けが発生しまして。

文字化け

ブラウザの文字コードのリストはこのようになってました。

charlist

現象としては、
HTML内にUTF-8で文字コード指定してもMac版chromeだけで何故か文字化け発生。その他のブラウザ(Macはfirefox,safari、windows7のIE8,IE9,chrome,firefox)はOK。
UTF-8指定なのにISO-8859-1として認識されてしまう。再読み込みすればUTF-8になる。PHPファイルもUTF-8で記述。ってなところです。

ちなみに、CakePHP1.3.2、2.2.4、2.2.5で現象を確認しました。

ググってみたところ、海外のフォーラムで以下の記事を発見
Browser detects ISO-8859-1 encoding on UTF-8 cakePHP app
bootstrap.phpにヘッダーとして文字コードを指定すればいいらしい。

app/Config/bootstrap.phpに下記を追加

header('Content-Type: text/html; charset=utf-8');

すると、無事、文字化けから開放されました!

ところで、ソースコードを検索すると結構使われているcore.phpの84行目の

Configure::write('App.encoding', 'UTF-8');

という設定があるが、今回の件とは関係ないのだろうか?

今回の環境はレンタルサーバ(さくらのレンタルサーバ スタンダード)なので、apacheやphpの設定ファイル関連で発生したのかもしれませんが。

ま、同じ現象が発生した人には「こんな対処法があるよ」ということで。

[`evernote` not found]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*