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

mysql:13350

From: 早間 <早間 <hayama@xxxxxxxxxx>>
Date: Fri, 15 Sep 2006 11:41:20 +0900 (JST)
Subject: [mysql 13350] Re: 2バイト文字の文字コード

こんにちは、早間です。

From: Mamiya Masataka <xc8m-mmy@xxxxxxxxxx>
Subject: [mysql 13348] 2バイト文字の文字コード
Date: Fri, 15 Sep 2006 08:24:18 +0900
Message-ID: <20060915081341.9E57.XC8M-MMY@xxxxxxxxxx>

> 
> 現実的な問題として、次のような問題が発生しました。
> 香 = 8D81
> 枕( = 968D8169
> となってしまい、枕の後ろ2バイトと(の前2バイトが香と同じ文字コードです。
> 
> mySQL で LIKE %香% をすると
> 「香」と「枕(」に合致してしまいます。
> これを防ぐよい方法はあるのでしょうか?
> 皆様のお知恵をお借りしたいと思います。
> 

私は euc-jp で使用しているので同じ文字で実験が出来ません。
 香 = b9e1
 枕( = cbeda1ca
多分 euc-jp でも同様の条件のもとでは同様の結果を招くものと考えられ
ます。
mysql 4.0.x では出来ないかも知れませんが内部コードを utf8 にすれば
検索時にマルチバイトの文字コードを認識してくれるかも知れません。
無責任ですが、同時に希望でもあります。

mysql 4.0.x では無意識に euc-jp を使用していたのですが、環境を 
mysql 4.1.21 に変更したとき default の my.conf に
[mysqld]
character-set-server            = utf8
default-character-set           = utf8
とあり、移行データがエラーで全滅しました。
# 単にconfファイルの書き方だけの問題かも知れません、
# 動けばそれ以上 の追求はしません。
今は
[mysqld]
character-set-server            = ujis
default-character-set           = ujis
character_set_client            = ujis
にしています。

移行時に設定ファイルを見たときは厄介だと思いましたが
間宮さんのメールを見て可能性を感じています。

-- 早間 義博

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

     13348 2006-09-15 08:24 [Mamiya Masataka <xc8] 2バイト文字の文字コード                
     13349 2006-09-15 11:22 ┣[<kiwah@xxxxxxxxxx>  ]                                       
     13351 2006-09-15 12:14 ┃┗[Mamiya Masataka <xc8]                                     
->   13350 2006-09-15 11:41 ┗[早間 <hayama@xxxxxxx]                                       
     13352 2006-09-15 13:00  ┗[Mitsuhiro KIZU <kizu]