mysql:15296
From: "TAKENAKA, Akikazu" <"TAKENAKA, Akikazu" <akikazu@xxxxxxxxxx>>
Date: Mon, 26 Apr 2010 18:16:39 +0900
Subject: [mysql 15296] 同じはずの環境で片方だけ文字化け
神奈川の竹中と申します。お世話になります。 ML #15248 とも一部重なるかと思い恐縮なのですが、どうしても解決できず困っています。 また、もしかしたらPHPユーザ会MLで聞いた方が適切かもしれないのですが、問題の切り分けができていません。 同一のPHPコード、同一のMySQLテーブルを使用して、2つの環境でテストを行っているのですが、片方だけ文字化けするという現象に困っています。 環境は下記の2ヶ所です。 【A】レンタルサーバheteml。 MySQLサーバ 5.0.82-community-log MySQLクライアント 4.0.25 phpMyAdmin 2.11.2.2 PHP 5.2.8 【B】手元のMacBook(Mac OS X 10.5.8)。 MySQLサーバ 5.1.45 MySQLクライアント 5.0.82 phpMyAdmin 3.3.2 PHP 5.2.12 上記のそれぞれの環境で、下記のテーブルをphpMyAdmin上で作成しました。 下記のコードは、テーブル作成後に SHOW CREATE TABLE を発行した結果で、環境Aと環境Bでまったく同一でした。 CREATE TABLE `test` ( `user_id` int(4) unsigned NOT NULL, `user_name` varchar(20) collate utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 続いて、それぞれの環境で、phpMyAdmin上でデータを挿入しました。 INSERT INTO test (`user_id`, `user_name`) VALUES (1, '竹中彰一'); phpMyAdmin上、およびターミナル上でデータを確認したところ、どちらの環境でも正常に登録されていることがわかりました。 次に、下記のPHPコードで接続テストを行いました。 (シフトタブを全角スペースに置換しています) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>テスト</title> </head> <body> <table> <tr><th>ユーザID</th><th>名前</th></tr> <?php $con = mysql_connect($hostname, $userid, $passwd); if (!$con) { die('MySQLへ接続できませんでした' . mysql_error()); } mysql_select_db($dbname); $ret = mysql_query("SELECT * FROM test"); while ($val = mysql_fetch_array($ret)) { $user_id = (string)$val['user_id']; $user_name = $val['user_name']; print '<tr><td>' . $user_id . '</td><td>' . $user_name . '</td></tr>'; } mysql_close($con); ?> </table> </body> </html> このコードをFirefox 3.5.9で表示したところ、環境Aでは期待通り、下記の結果が返りました。 (抜粋) <table> <tr><th>ユーザID</th><th>名前</th></tr> <tr><td>1</td><td>竹中彰一</td></tr> </table> しかし、環境Bでは文字化けしてしまいました。 <table> <tr><th>ユーザID</th><th>名前</th></tr> <tr><td>1</td><td>????</td></tr> </table> 問題がMySQL側とPHP側のどちらにあるのかわからず、糸口がつかめない状態で困っております。 MacへのMySQLのインストールなどよくわからないままやったので、どこを調べればいいのかすらわからないのですが… 解決へのヒントや疑うべきポイントなど、ご教授いただければ幸いです。 よろしくお願いいたします。 -- equal1 竹中 彰一 (TAKENAKA, Akikazu) akikazu@xxxxxxxxxx | www.equal1.net Skype: equal1.at | iPhone: +81-90-8477-3901
-> 15296 2010-04-26 18:16 ["TAKENAKA, Akikazu" ] 同じはずの環境で片方だけ文字化け 15298 2010-04-26 21:31 ┣[Masaaki Matsuyama <m] 15301 2010-04-27 10:27 ┃┗["TAKENAKA, Akikazu" ] 15303 2010-04-27 10:37 ┃ ┗[Masaaki Matsuyama <m] 15304 2010-04-27 11:56 ┃ ┗["TAKENAKA, Akikazu" ] 15299 2010-04-26 21:42 ┣[Yuya Takeyama <sign.] 15302 2010-04-27 10:32 ┃┗["TAKENAKA, Akikazu" ] 15305 2010-04-27 12:44 ┗["Michiyoshi Buniu\(D] 15306 2010-04-27 13:19 ┗["TAKENAKA, Akikazu" ]