みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

My SQL の文字化け

PHPを使用してMySQLからデータの読み出しで”?????”文字化けが発生します。
データベースでは問題なく日本語が入っているのですが、表示させたいページでは
mysql_query("SET NAMES , 'utf8'");

<?php echo mb_convert_encoding(SET NAMES ,'UTF-8');?>
としたのですが文字化けのままです。

同じような事例も結構あるようで、いろいろ調べて試して見たいのですが原因がわかりません。
http://netlog.jpn.org/r271-635/2008/05/php_mysql_utf8.html

よろしくおねがいいたします。

投稿日時 - 2012-03-20 08:30:21

QNo.7372709

困ってます

質問者が選んだベストアンサー

別の方がされた質問と似ている問題であれば、

http://okwave.jp/qa/q6320887.html

No.2の回答が参考になれば幸いです。

参考URL:http://okwave.jp/qa/q6320887.html

投稿日時 - 2012-03-21 14:43:55

お礼

参考URLの回答no.2で無事できました。ありがとうございました。

投稿日時 - 2012-03-23 00:05:56

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

>mysql_query("SET NAMES , 'utf8'");
>と
><?php echo mb_convert_encoding(SET NAMES ,'UTF-8');?>
>としたのですが

何を参照して書かれたのでしょうか?phpとMySQLのバージョンが書かれていませんが、mysql_set_charsetが使える環境であれば、それを使うべきです。

mysql_set_charset('utf8');

http://jp2.php.net/manual/ja/function.mysql-set-charset.php

当然ですが、クライアントの文字セットを正しく指定するのであればmb_convert_encodingを使う必要はありません。

(それが使えない環境で)次善の策としてset namesを書くとしても

mysql_query('set names utf8');

となります。提示されたようにset namesとutf8をカンマで区切る書き方はちょっと見たことがありません(汗

http://dev.mysql.com/doc/refman/5.1/ja/charset-connection.html


なお「utf8」を指定されていますが、phpスクリプトは間違いなくutf-8で書かれていますでしょうか?これが間違っていたらどうやっても意味がないので。

投稿日時 - 2012-03-20 13:03:24

あなたにオススメの質問