MAMP+PHPmyAdmin環境でMySQLに挿入された中身が文字化けする場合の対処方法

MAMP
スポンサーリンク

MAMP+PHPmyAdmin環境で、SQLによってINSERTした内容が文字化けする場合が頻繁に起こります。(個人的な環境ですが)

はっきりした原因がわからないのですが、解決方法を見つけたのでメモ。

確認環境

  • MacOS 10.6.8
  • MAMP PRO 2.0.5
  • PHP5.2.17
  • 文字コードはUTF-8とします

MySQLにutf-8だよと知らせてあげる

SQLの実行前に「mysql_set_charset(‘utf8’);」を行ってあげるとよいらしいです。

mysql_set_charset(‘utf8’);はPHP5.2.3以降とかかれていましたが、なぜか当方の環境でも使えました。(なぜだろう…)

“`//SQL文
$q = sprintf( "insert into bookmarks( 〜 ) values ( 〜 )", 〜 );

//本SQL文の実行の直前にこれを実行
mysql_set_charset(‘utf8’);

//そのあとに本SQL文を実行
mysql_query($q) or die ("失敗".mysql_error());“`

mysql_query(“SET NAMES ‘utf8′”);

ちなみに、検索するとよく出てくる

“`mysql_query("SET NAMES ‘utf8’");“`

は、セキュリティ的にあまりよろしくないそうです。