WEBぷろぐらま〜 システム開発エトセトラ このページをアンテナに追加 RSSフィード

2007-09-04 CakePHP MySQL文字化け

文字化け対処

昨日、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'を入れて見たところ、ちゃんと動くではないですか!!!!

sztmsztm 2007/09/15 16:13 はじめまして。
CakePHPのデータベース文字化け、僕もはまりました。
takuya15さんの書いているencodingの一行で解決。
この記事があって助かりました。ありがとうございます!

takuya15takuya15 2007/09/16 21:03 sztmさん、参考になってよかったです^^
私も1日ぐらいはまってましたw
他のサーバーだと正常だったりするので、根本的な原因解決じゃない  気はしますが・・・

うにうに 2007/09/19 10:34 うわー、一発でなおった!thx

faminotefaminote 2007/12/03 18:17 はじめまして。私も同じことで困って、検索でたどり着きました。
一発で解決して本当に助かりました!ありがとうございました。

gabingabin 2008/07/15 17:46 googleからきました、ビンゴでした。
ありがとうございます。

sforest1975sforest1975 2009/09/21 16:08 おいらの場合はなぜかやっても直らなくて、どうしてかとおもったら、utf-8になっていました。utf8にしたら動きました!参考までに!

oknokn 2009/10/13 17:15 ありがとうございました。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証