文字化け対処
昨日、DBより取得したデータだけが、????に文字化けしていたので、そのときの対処方法です。
文字コードはutf-8に統一です。
・ブラウザの文字コードを確認 ⇒ utf-8
・DBの文字コードを確認 ⇒ utf-8
・php.iniのmbstringを確認 ⇒ utf-8
・phpinfo()で確認 ⇒ utf-8
・set_iniでutf-8にしてみる ⇒ 変化無し
・ソース内でechoであああを出力 ⇒ 文字化けしない
・set namesでDB接続時に文字コードを指定 ⇒ 直った!!!
う〜ん、DB接続で文字コードが変換されていたみたいです。
どこかで、database.php辺りで設定したいのですが、見た限りでは、そんな項目はありません。
ソースを見ていくと、dbo_mysql.phpの109行目辺りに
if (isset($config['encoding']) && !empty($config['encoding'])) { $this->setEncoding($config['encoding']); }
いけそうですね。
なので、database.phpの設定を以下のように
var $default = array('driver'=> 'mysql', 'connect' => 'mysql_connect', 'host' => 'localhost', 'login' => 'hogehoge', 'password'=> 'hogehoge', 'database'=> 'hogehoge', 'encoding'=> 'utf8', 'prefix' => '');
'encoding'=>'utf8'を入れて見たところ、ちゃんと動くではないですか!!!!