MySQLで文字化けします

phpmyadmin+MySQLとMovableTypeでサイトを構築していましたが、Nucleus(utf-8)を入れたところ文字化けしてしまいました
my.cnfにて
[mysqld]
default-character-set = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
の設定を行ったところ、今度はMovableType側で文字化けしてしまいます
phpmyadminで確認してみると照合順序がlatin1_swedish_ciになっていました
これをutf8_unicode_ciに直しましたが変わりません

default-character-set=utf8
の設定をした上でMovableTypeの文字化けを無くすにはどうすればよいでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/10/22 19:03:56
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:KUROX No.1

回答回数3542ベストアンサー獲得回数140

ポイント60pt

DBに接続しているところで、

mysql_select_db($dbase);

mysql_query("SET NAMES utf8;"); //←追加

のコードを挿入してみたらどうでしょうか?

id:technote7

ありがとうございます。

これはMT側にSET NAMESを入れるということでしょうか?

回答の内容から調べてみると

http://blog.inasphere.net/2007/05/mysql_charset.html

default-character-set=utf8

skip-character-set-client-handshake

でも対応できそうですが、こちらで出来れば済ませたいのですがmy.cnfを変更しても

文字化けが解消できません

新規MTで入力したデータは文字化けしませんが既に入力してあるデータを変換?して文字化けさせないように

するにはどうすればよいのでしょうか

2007/10/20 15:18:18
  • id:technote7
    自己解決しました
    よくよく調べてみたところ使っていたMySQLのバージョンは5.0.41で
    skip-character-set-client-handshakeが使えないようですね。。。

    そこでご指摘していただいたSET NAMESですが下記サイトが参考になりました
    http://yossy.iimp.jp/wp/?cat=19

    skip-character-set-client-handshake
    の一文を消して
    init_connect="SET NAMES utf8"
    に書き換えたところ文字化けが治りました!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません