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]