- ベストアンサー
バグ?「WHERE name LIKE '%犬%'」と書いて「くじら」が抽出される
PHP+MySQLでWEBサイトを構築しています。 以下のように実行すると、 SELECT * FROM `tblA` WHERE `name` LIKE '%犬%' tblAの nameフィールドにある「くじら」までヒットしてしまいます。 --------- name --------- 長犬 柴犬 くじら --------- これはバグでしょうか?なぜこのようになるのでしょうか。 回避策はありませんでしょうか?もし、現在の環境での回避策があればよいのですが。 以上、宜しくお願い致します。 (環境) PHP Version 4.2.3 mysql Client API version 3.23.39
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
mysqlをujis設定にすればよろしいのでは?
その他の回答 (1)
- neKo_deux
- ベストアンサー率44% (5541/12319)
回答No.1
EUCの文字コードで見ると、 犬:0xB8A4 く:0xA4AF じ:0xA4B8 ら:0xA4E9 となります。 日本語対応で無い環境の場合、 くじら「A4 AF A4 B8 A4 E9」の中から 犬「B8 A4」を探してマッチします。 -- > 回避策はありませんでしょうか? PHPはやった事無いので、何とも…。
質問者
お礼
ありがとうございます。 原因が理解できました。
お礼
ありがとうございます。 調べたところ、 character set latin1 となっていましたので、これを、ujisに変更すればよいわけですね? ところで、このように変更することによって、既存のサイトになんらかの影響はあるのでしょうか?すでにいくつかのサイトを構築しているのですが、例えば、設定変更により、文字化けするなど、他の面でトラブルが発生しないかが心配です。特に心配は不要でしょうか?