電子書籍の厳選無料作品が豊富!

xamppをインストールしMySQLを使おうとしたのですが、日本語をinsertしようとすると?で格納されてしまいます。

my.iniの設定を以下のように変えてみましたがうまくいきません。
[client]
# 追加
default-character-set = utf8

[mysqldump]
# 追加
default-character-set=utf8

[mysqld]
# 追加
skip-character-set-client-handshake
default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

[mysql]
# 追加
default-character-set=utf8

STATUS;コマンドで確認すると
Client characterset: utf8
Server characterset: utf8
とってなっており、SHOW VARIABLES LIKE 'char%';を実行してもcharacter_set_filesystem以外はutf8になっています。

xampp等のバージョンは以下の通りです。
xampp 1.7.2
MySQL 5.1.37

PHPからのクエリ発行、phpmyadminというツールからのクエリ発行どちらも?で格納されてしまいます。
もうどこが問題なのか見当が付きません。
よろしくお願いします。

A 回答 (3件)

windows のphp + MySQL4.1以降の場合、接続したら


set names utf8
を実行するのは、ほとんどお約束みたいなものなのですが、やってますか?
my.iniのclient設定は、phpのlibmysql.dllは対象外ですので。
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ# …
phpmyadmin は私は使ったことがないけど、これを実行させるように設定が必要と思われます。
    • good
    • 0
この回答へのお礼

お礼が遅くなってしまい申し訳ございません。

php、phpmyadminともに文字コードの設定をutf-8に変更してはあるのですが、文字化けが起こります。

テーブル作成時に最初から文字コードがutf-8で作ったら文字化けしないようになりました。

どうも、あとから文字コードを変えてみてもダメということみたいです。

お礼日時:2009/12/17 13:07

文字化けが発生する環境で、文字コードを確認してますか?



>my.iniの設定を以下のように変えてみました

xamppで使っているMySQLが参照している設定ファイルであると、確認できていますか?

>PHPからのクエリ発行、phpmyadminというツールからのクエリ発行どちらも?で格納されてしまい

実際に文字化けが起こっているというphpMyAdminで、

show variables like 'char%'

を表示させてみましたか?

show create tableで、表定義で実際に有効になっている文字コードを確認してみてください。
    • good
    • 0
この回答へのお礼

お礼が遅くなってしまい申し訳ございません。


>xamppで使っているMySQLが参照している設定ファイルであると、確認できていますか?

変更後のmy.iniを削除したらcharset~がlatin1に戻っていたのでおそらく間違いないと思われます。

>実際に文字化けが起こっているというphpMyAdminで、show variables like 'char%'を表示させてみましたか?

character_set_filesystem以外はutf8になっていました。



テーブル作成時に最初から文字コードがutf-8で作ったら文字化けしないようになりました。

どうも、あとから文字コードを変えてみてもダメということみたいです。

お礼日時:2009/12/17 13:02

確か、データベースの文字コードと、テーブルの文字コードの2つがあったと思います。

これらの文字コードはそれぞれ作成時に設定されます。

データベース、テーブルそれぞれで文字コードを指定して作成して試してみてはいかがでしょう?(設定ファイルの文字コード指定は、多分生成時しか参照しないと思いますので、生成後に変更しても無意味です。)
    • good
    • 0
この回答へのお礼

お礼が遅くなってしまい申し訳ございません。

データベースやテーブル作成時に文字コードを指定してなかったので、latin1になっていました。
なので、あとからphpmyadmin上やalter database DB名/テーブル名 character set utf8 を発行したりしてutf-8に変えた状態でした。
そこで、テーブル作成時に最初から文字コードがutf-8で作ったら文字化けしないようになりました。

どうも、あとから文字コードを変えてみてもダメということみたいです。

お礼日時:2009/12/17 12:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!