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

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]