mysql:14346
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Thu, 17 Jan 2008 01:00:19 +0900
Subject: [mysql 14346] Re: ひらがなが五十音順に並ばない
とみたです。 On Wed, 16 Jan 2008 21:35:48 +0900 takahashi nobuyuki <nobusan@xxxxxxxxxx> wrote: > show create table で > 再度確認したら > > ) ENGINE=MyISAM AUTO_INCREMENT=405 DEFAULT CHARSET=cp932 > > となっていました。 > この点では、成功です。 > > ですが、 > HP上で見ると > 今度は五十音順に並んでないと言うよりは、 > これまでちゃんと感じが見えていたので、 > 全ての文字が????になってます。 まず、テーブル内のデータが本当に「?」になってしまったのかどうかは、次の ようにして確認できます。 select hex(shimei) from kiso_t; これで、3F3F3F... とかが出力されたらアウトです。データが壊れてしまってます。 そうじゃなくて、82A082A282A4... のように出力されるのであれば、データは 多分無事です。クライアントアプリと mysqld との間で charset が合っていな いために「?」に変換されてしまっているのだと思います。 私は PHP については詳しくないので、正しい対処方法はわかりません。 もし、アプリケーションを変更可能で、mysqld に接続後に「set names cp932;」 というクエリを発行できるのであれば、試しにやってみてください。これで文 字化けしなくなれば、charset が合っていないためだと判断できます。 ただし、set names で cp932 charset に対応するのはセキュリティ的に問題が あるので、恒久的な対策は set names ではなく PHP としての正しい方法でやっ てください。 -- とみたまさひろ <tommy@xxxxxxxxxx> 日本MySQLユーザ会 http://www.mysql.gr.jp
14340 2008-01-13 23:15 [takahashi nobuyuki <] ひらがなが五十音順に並ばない 14342 2008-01-14 17:57 ┗[とみたまさひろ <tomm] 14343 2008-01-15 06:56 ┗[takahashi nobuyuki <] 14344 2008-01-15 07:28 ┗[とみたまさひろ <tomm] 14345 2008-01-16 21:35 ┗[takahashi nobuyuki <] -> 14346 2008-01-17 01:00 ┗[とみたまさひろ <tomm]