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

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

解決済みの質問

PHP+MySQLの文字化けで悩んでいます

お世話になります。
Windows Server2003で、XAMPPでPHP+MySQLを利用しようとしていますが
文字化けが解消されず困っています。どなたか、お助けいただけないでしょうか。

他では成功していたSJISを使おうと思っていますがうまくいきません。
my.cnfでの[mysqld]や[mysql]などの設定、およびphp.iniのmbstringなどの設定は、
今まで成功していたWindowsやLinuxと同様に行いました。
PHPによる単純な日本語表示もMySQLモニタ上の日本語は問題ありません。
しかし、MySQLからの結果セットを受け取ると文字化けしてしまいます。
たとえば、
$re=mysql_query("SELECT * FROM tb");
while($kekka=mysql_fetch_array($re)){
print $kekka[0]; }
などを実行すると「:?w?Z?カ??:」などの表示になってしまいます。
また、PHPからMySQLでINSERTすると、MySQLでも文字化けしてしまいます。
MySQLモニタで「SHOW VARIABLES LIKE 'char%';」を実行すると次のように表示されます。
character_set_client | sjis
character_set_connection | sjis
character_set_database | sjis
character_set_filesystem | binary
character_set_results | sjis
character_set_server | sjis
character_set_system | utf8

知識がなく、悩んでおります。
まことに申し訳ありませんが、どなたかお助けいただけないでしょうか。
どうか、よろしくお願いいたします。

投稿日時 - 2007-08-20 16:02:19

QNo.3270775

すぐに回答ほしいです

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

MySQLのバージョンは、何でしょうか?

MySQL 5.0.13以降なら、以下の指定を入れて、MySQLのサービスを再起動してみてください。

my.cnfの[mysqld]に、
skip-character-set-client-handshake

意味としては、サーバ側の文字コードの設定を、クライアント側でもそのまま使う指定です。

投稿日時 - 2007-08-20 16:22:40

お礼

はい、XAMPP独自のmy.cnfの設定のようでした。
my.iniがないので、無理やり自分で作成したものに
[mysql]の設定をしたのですが、これはまったく無視されていたようです。
申し訳ありませんでした。
以前も、お助けいただきまして、感謝しております。
また、ご迷惑をおかけしたことをお詫びいたします。
本当にありがとうございました。

投稿日時 - 2007-08-20 21:44:23

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

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

回答(3)

ANo.3

SET NAMES 文字コード
を利用する。

投稿日時 - 2007-08-20 16:44:26

お礼

申し訳ありませんでした。
[mysql]の設定が無視されていたようです。
ご迷惑をおかけして申し訳ありませんでした。
ご親切に感謝いたします。ありがとうございました。

投稿日時 - 2007-08-20 21:45:59

ANo.1

charsetは出力していますか?

<?php
header('Content-Type: text/html; charset=Shift_JIS');
?>
...
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

ちなみにこの答え書くの3回目。

投稿日時 - 2007-08-20 16:18:14

お礼

申し訳ありませんでした。
付けていませんでした。
また、my.iniがないので、無理やり自分で作成したものに
[mysql]の設定をしたのですが、これはまったく無視されていたようです。
ご迷惑をおかけして申し訳ありませんでした。
そして、ご親切に感謝いたします。
ありがとうございました。

投稿日時 - 2007-08-20 21:41:48

あなたにオススメの質問