[前][次][番号順一覧][スレッド一覧]

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]