mysql:13711
From: Mamiya Masataka <Mamiya Masataka <xc8m-mmy@xxxxxxxxxx>>
Date: Wed, 07 Feb 2007 02:12:09 +0900
Subject: [mysql 13711] Re: like で抽出する場合の注意点
皆さんこんばんは。茨城の間宮です。 今回 like の取り扱いでは大変貴重な情報をありがとうございました。 皆さんからいただいた情報で、自分なりに整理し、解決策を探ってみました。 でも、なかなかうまくいきません。 日本語での検索、文字コードとの関係を正しく理解していないといけない。 当初より利用する文字コードで正しく mySQL を設定していないとダメですね。 ------現状は以下のようです------ 当初文字化けなどもなかったので、 文字コードについてなんの設定もしませんでした。 と言うことは Windows では sjis で文字を持ち、mySQL はそのままのデータで保存なのでしょう。 今回抽出に関連し、1バイト文字と2バイト文字の混同を避けるため、 テキストデータを EUC-JP で保存してみました。 mySQL の設定は何もしない状況で、 文字コードだけ Jcode.pm で euc に変換して保存したんです。 それを表示する場合は当然文字化けしますので、 表示の際 sjis に戻してやりました。 これで表示問題はとりあえず解決したかに見えました。 データの中に sjis と euc が混在すると言う状況です。 英数(ASCII)は日本語の場合どの文字コードでも同じで、問題はなさそうです。 このような状況で検索をうまく行うため、文字コードを設定してみました。 my.ini に default-character-set=ujis を加えると、検索が全くだめになってしまいます。 like に渡す文字列は、事前に euc に変換し、 無理無理保存した euc テキストデータを検索するのですが、 default-character-set=ujis があると検索文字が全く一致しなくなってしまいます。 書きながら思い出したのですが… 検索文字列は euc に変換した後 quotemeta でエスケープしてます。 ここが問題だったりするのでしょうか? 文字設定を何も指定しない場合、検索はうまくいきます。 但し、今回の一連のスレッドの通り、一部の文字を区別できないのですが… 文字コードをどのように設定したらいいか困ってしまいました。 はなから出来ないものを考えて困ってしまっているのか、 設定の方法があるものか。 出来ないと言うことがわかるだけでも助かります。 そのあたり情報をいただければありがたいと思います。 どうぞよろしくお願いいたします。 -- Mamiya masataka from IBARAKI JAPAN 0297-58-6313 090-4430-2918 mamiya@xxxxxxxxxx masataka-orange@xxxxxxxxxx
13695 2007-01-28 12:25 [Mamiya Masataka <xc8] like で抽出する場合の注意点 13696 2007-01-29 04:29 ┣[Tasuku SUENAGA <a@xx] 13700 2007-01-29 11:02 ┃┣[Mamiya Masataka <xc8] 13703 2007-01-30 08:09 ┃┗[とみたまさひろ <tomm] -> 13711 2007-02-07 02:12 ┃ ┗[Mamiya Masataka <xc8] 13701 2007-01-29 12:12 ┗[YuGo <yu.gotou@xxxxx]