PHPからMySQLにUTF-8でデータをINSERTする際に文字化けする時の対処法


PHPからMySQLにデータをINSERT文で挿入した際に文字化けが発生した。

どうしても必要ではなかったが、アラビア文字とかが入らないというのもなんだか嫌だった。

対処法というよりは、下記の方法で文字化けしなくなったので書いておきます。

[php]
$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_query("SET NAMES utf8",$db);
if (!$db) {
die(‘接続失敗です。’.mysql_error());
}
$db_selected = mysql_select_db($db_name, $db);
if (!$db_selected){
die(‘データベース選択失敗です。’.mysql_error());
}
[/php]

上記の用に「mysql_query(“SET NAMES utf8”,$db);」で文字コードをセットすればいいみたい。

他サイトで調べた際には

[php]
mb_language("uni");
mb_internal_encoding("utf8");
mb_http_input("utf8");
mb_http_output("utf8");
[/php]

上記のような設定をphpファイルの先頭に記述しておくというようなことも書いてあったが、環境によって違うのかな。

まだまだ勉強不足なのでApacheでサーバ立てれるように資金が溜まり出したらまたまとめて書くかもしれません。

もし文字化けが発生していたらご参考までに。


この投稿へのコメント

コメントはありません。

コメントを残す

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL