Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:カタカナ小文字「ァ」の、検索時の文字化けで困っています。)

カタカナ小文字の検索時の文字化けで困っています

このQ&Aのポイント
  • 現在、カタカナ小文字の「ァ」が入っているキーワードで検索すると、文字化けが起こってしまいます。
  • 対象のキーワードが入った場所で、「ヴァージニティ」が「ヴ 璽献縫謄 」と表示される問題に困っています。
  • magic_quotes_gpcの設定がONでもOFFでも対応できるような処理を記述していますが、解決できない状況です。

質問者が選んだベストアンサー

  • ベストアンサー
  • racci
  • ベストアンサー率64% (9/14)
回答No.3

#2です。 $keyword = str_replace(" ", " ", $keyword); のところがマズイわけです。 str_replaceの代わりにmb_ereg_replaceなどを使えば解決します。

uni_51
質問者

お礼

ありがとうございます。 問題が解決しました。 もっと、勉強しないと駄目ですね・・ 本当に感謝しております。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • racci
  • ベストアンサー率64% (9/14)
回答No.2

お書きになった情報からだけでは、理由らしきものは判りません。 ただプログラム中のどこかで、値がおかしくなっているんでしょう。 それがどこなのかを知るために、$keywordに対して値の変更操作(mb系の関数を適用したり、stripslashesやhtmlspecialcharsするとか)のたびに、 echo bin2hex($keyword); して値がおかしくなっていないか調べてみるのがよいと思います。 EUC-JPのヴァージニティをbin2hexすると、 a5f4a5a1a1bca5b8a5cba5c6a5a3 と出てくるはずです。

uni_51
質問者

お礼

アドバイスありがとうございます。 bin2hexという便利な関数があるのですね。 echo bin2hex($keyword);で、「ヴァージニティ」を 出力してみたところ、 a5f4a5 bca5b8a5cba5c6a5a3となり、 どうも私の環境ではa1a1が認識されていないようです。 ここから先の対処方法がわからないので、教えていただければ 幸いです。

すると、全ての回答が全文表示されます。
  • asuncion
  • ベストアンサー率33% (2127/6291)
回答No.1

> php_value mbstring.language Japanes Japaneseのスペルが正しくないのは、 投稿時のちょっとした間違いですか?

uni_51
質問者

お礼

すいません。 投稿時のスペルミスでした。 ご指摘ありがとうございました。

uni_51
質問者

補足

上記No.2のアドバイスへの補足の説明事項です。 $keywordですが、名前での複数語検索に対応するように 下記のようなプログラムを組んでいます。 //キーワードが入力されているときはWHERE以下を組み立てる if(strlen($keyword) > 0){ //全角スペースを半角スペースに置換する $keyword = str_replace(" ", " ", $keyword); //キーワードを半角スペースで分割する $gt = explode(" ", $keyword); $wt = "name LIKE '%$gt[0]%'"; $i=1; $n = count($gt)-1; while($i <= $n){ $wt = $wt ." and name LIKE '%$gt[$i]%'"; $i++; } } どうも、このプログラムの部分で「ァー」(16真数でa1a1)が入っていると、全角空白の「a1a1」と認識してしまうことが原因のようです。 複数語検索の機能を損なわないで、かつ「ァー」の場合の「a1a1」だけ 区別するにはどのようにすればよいでしょうか? お恥ずかしいのですが、 if(!ereg(ァー,$tenmei)){ //全角スペースを半角スペースに置換する $tenmei = str_replace(" ", " ", $tenmei); } のようにした場合、当然ですが、「ァー」がキーワードに入っている場合の複数語検索ができなくなりました。 お知恵を貸していただければ幸いです。

すると、全ての回答が全文表示されます。

関連するQ&A