Apache2.2.19
php5.2.7
を,
windowsXPsp3(パッチが全部あたった最新)にインストールし、
php開発練習をしている初心者です。MySQLの文字化けについて悩んでいます。
mysql> show variables like 'cha%';で見ると、以下の通り設定されています。
| character_set_client | cp932 |
| character_set_connection | cp932 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | cp932 |
| character_set_server | utf8 |
| character_set_system | utf8 |
phpで、DB接続の後、
mysql_set_charset('utf8');
を書くと、DBの日本語内容は
mysql_query("select * from tablename");
で、表示されるのですが、毎回mysql_set_charsetは書く必要があるのか疑問に思っています。
dbをutf8で設定し、mysql_queryの結果もutf8でもらい、そのままブラウザで日本語のデータ内容を表示したいです。
character_set_results をutf8に変更すればできるのかな?と思い、いろいろ調べておりますが、よくわかりません。
my.iniには
character-set-server=utf8
を設定済です。
windows上の現在の環境でmysql_set_charset('utf8');を書かずにMySQL内の日本語データを表示できる設定方法を教えていただきたく、なにとぞよろしくお願いいたします。
それぞれのセクションに下記のように文字コードを設定し、MySQLを再起動してください。
[mysqld] #character-set-server=utf8 default-character-set=utf8 skip-character-set-client-handshake [client] default-character-set=utf8 [mysql] default-character-set=utf8
windows terminalからsqlコマンドを打つ時はdefault-character-set=cp932とし、
phpで操作するときはdefault-character-set=utf8と書きかえ、
都度MySQLサービスを再起動させています。