mysql:15305
From: "Michiyoshi Buniu\(DreamLink\)" <"Michiyoshi Buniu\(DreamLink\)" <buniu@xxxxxxxxxx>>
Date: Tue, 27 Apr 2010 12:44:11 +0900
Subject: [mysql 15305] Re: 同じはずの環境で片方だけ文字化け
豊丹生と申します。 違ってたらすみません。 &既にお試しであればすみません。 以下の内容だとBの環境でsql実行前に set names utf8; を実行すれば良いのではないでしょうか? Michiyoshi Buniu ----- Original Message ----- From: "TAKENAKA, Akikazu" <akikazu@xxxxxxxxxx> To: "ml" <ml@xxxxxxxxxx> Sent: Monday, April 26, 2010 6:16 PM 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" ]