CakePHPの各種ファイルをEUCで編集したくて、そのようにすると、ブラウザで文字化けする。
勝手にcharset=utf-8ってmetaタグに書かれているため。
ビューにて、
って書いてあげると、charset=EUC-JPが出力されるんだけど、最初にcharset=utf-8って書かれているため、ブラウザではそっちが優先されるのか、文字化けしたまま。
こんなHTMLソースになってる。
ブラウザのエンコーディング設定をEUCに変えると、ちゃんと表示される。
リファレンスには、cake/libs配下のファイルは原則としていじらないように。って書かれているけど、cake/libs/view/helpers/html.php のcharsetメソッドをいじる。
これでちゃんとEUCで表示されるようになった(HTML上のheadタグ内のcharset定義がEUC-JPに変わった)。 ビューで$html->charset()をコールするのを消してすっきり。
勝手にcharset=utf-8ってmetaタグに書かれているため。
ビューにて、
$html->charset('EUC-JP'); |
って書いてあげると、charset=EUC-JPが出力されるんだけど、最初にcharset=utf-8って書かれているため、ブラウザではそっちが優先されるのか、文字化けしたまま。
こんなHTMLソースになってる。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> </body> </html> |
ブラウザのエンコーディング設定をEUCに変えると、ちゃんと表示される。
リファレンスには、cake/libs配下のファイルは原則としていじらないように。って書かれているけど、cake/libs/view/helpers/html.php のcharsetメソッドをいじる。
function charset($charset = null, $return = false) { if (is_null($charset)) { //$charset = 'utf-8'; $charset = 'EUC-JP'; } return $this->output(sprintf($this->tags['charset'], $charset), $return); } |
これでちゃんとEUCで表示されるようになった(HTML上のheadタグ内のcharset定義がEUC-JPに変わった)。 ビューで$html->charset()をコールするのを消してすっきり。