We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 21684
    • 46 Posts
    encodeURIComponent(s)
    encodeURIComponent(moreResultsText)
    encodeURIComponent(resultsIntroFailure)
    この3つは修正してます。
      • 8382
      • 253 Posts
      そうですか...EUC-JPではencodeURIcomponentが効きませんか...
      残念ですが、これ以上はすぐには思いつきません。 :’(
      ご協力ありがとうございました。いろいろ作業させてしまったのに
      何の結果も出せず大変申し訳ありませんでした。お詫び申し上げます。
        • 21684
        • 46 Posts
        いえいえ、こちらこそ。
        ajaxSearchを切れば検索出来るわけですから、解決策が出るまで気長に待ちます。
        ありがとうございました。 smiley
          • 29228
          • 109 Posts
          すみませんが、試して頂きたい事があります。
          encodeURIcomponent()として動かなかった方は、encodeURI()として試してみてください。
          私の環境では動きました。
          ただ、encodeURIcomponent()もencodeURI()ブラウザーに依存する可能性もあるようですし、セキュリティー的に?な部分もあります。
          そこら辺は、詳しい人Helpです。 lipsrsealed

          スミマセン、ちょっと修正します。
          これ確かに日本語の検索は出来るようになるんですが、副作用としてスニペットで指定する日本語メッセージが化けます。
          どこかでPHP側でdecodeすれば直るんじゃないかな?と思われるのですが、まだ良く分かりません。(^^;

          再度修正します。
          escape()の箇所を全てencodeURI()にすれば、とりあえず大丈夫です。
          セキュリティー的には不明ですけど。。。
            • 20953
            • 70 Posts
            Quote from: takumi at Apr 08, 2006, 09:40 AM

            すみませんが、試して頂きたい事があります。
            encodeURIcomponent()として動かなかった方は、encodeURI()として試してみてください。

            これはEUC-JPで動かなかった人向けでしょうか?
            ajaxSearch.jsの58行目にあるescape()を書き換えると言う意味ですよね?
            ajaxSearch.phpはオリジナル(修正等を一切加えていない)ものを利用するのでしょうか?
            それとも、一部を変更したものを利用するのでしょうか?
            教えて頂けると助かります。
              • 29228
              • 109 Posts
              Quote from: naoya at Apr 08, 2006, 11:31 PM

              これはEUC-JPで動かなかった人向けでしょうか?
              ごめんなさい。
              いろいろ調査してる最中ですが、結局EUC-JP環境では動きませんでした。
              今EUC-JP環境を新たに作って実験をしてる最中なので、もう少し待ってて下さい。
              それと、EUC-JP環境の方にお聞きするのですが、症状として
              1.半角英数で検索すると、検索結果で日本語が?などになって化ける。
              2.日本語で検索すると、まったくヒットしない。
              と、こんな感じですかね?
              私が作ったEUC環境だと、このような感じの症状です。
              もし、他の症状が出てるようならご連絡下さい。
                • 20953
                • 70 Posts
                Quote from: takumi at Apr 08, 2006, 11:59 PM

                それと、EUC-JP環境の方にお聞きするのですが、症状として
                1.半角英数で検索すると、検索結果で日本語が?などになって化ける。
                2.日本語で検索すると、まったくヒットしない。
                と、こんな感じですかね?

                私の環境ではそれと同じ症状です。他にエラー等はありません。
                私にお手伝い出来るだけの能力・知識がないので、任せっ放しになっていて申し訳ありません。
                takumiさんの環境で上手く動くようになりましたテストだけはお手伝い出来ると思いますので、宜しくお願い致します。
                  • 21684
                  • 46 Posts
                  euc-jp、こちらも同じ症状です。
                    • 29228
                    • 109 Posts
                    途中経過ですが、とりあえず文字化けと日本語検索が出来そうです。 grin
                    http://bit.cms-labo.org/ajax.html
                    上記サイトはEUC-JP環境のテストサイトです。
                    キーワードにホームと入力してみて下さい。
                    これで問題無いようなら、良いのですが・・・。

                    修正箇所ですが、前にeastbindさんが書いた
                    $moreResultsText = mb_convert_encoding($_GET['moreResultsText'],"EUC-JP","UTF-8");
                    $resultsIntroFailure = mb_convert_encoding($_GET['resultsIntroFailure'],"EUC-JP","UTF-8");
                    $searchString = mb_convert_encoding($_GET['search'],"EUC-JP","UTF-8");

                    の3箇所の修正で、日本語検索でキーワードがヒットするようになると思います。
                    そして文字化けですが、
                    ajaxSearch.phpで$result.=’<div class="FSF_ajax_result">’;などが書いてある下の箇所、
                    つまり、検索結果が出力される変数がHTMLタグと一緒に書いてあります。
                    その変数、例えば. $row[’pagetitle’] .なんかを
                    . mb_convert_encoding($row['pagetitle'],"UTF-8","EUC-JP") .

                    などに変更してあげれば、出力時の文字化けは回避されます。

                    ほんとはajaxSearch.phpをまるごとアップすれば良いのですけど、かなり弄くりまくって・・・・ embarrassed
                    あ、ajaxSearch.jsでencodeURIComponent()するのを忘れないようにして下さい。

                      • 20953
                      • 70 Posts
                      当方の環境で確認出来ました。
                      ajaxSearch.jsを変更の上、ajaxSearch.phpの
                      $moreResultsText = mb_convert_encoding($_GET['moreResultsText'],"EUC-JP","UTF-8");
                      $resultsIntroFailure = mb_convert_encoding($_GET['resultsIntroFailure'],"EUC-JP","UTF-8");
                      $searchString = mb_convert_encoding($_GET['search'],"EUC-JP","UTF-8");
                      

                      を変更、htmlタグ部分を下記のようにしています(66行目から70行目)。
                                $result.='<div class="FSF_ajax_result">';
                                $result.='<a class="FSF_ajax_resultLink" href="index.php?id='.strval($row['id']).'" title="' . $row['pagetitle'] . '">' . mb_convert_encoding($row['pagetitle'],"UTF-8","EUC-JP") . "</a>";
                                $result.=$row['description']!='' ? '<span class="FSF_ajax_resultDescription">'  . mb_convert_encoding($row['description'],"UTF-8","EUC-JP"). "</span>" : "" ;
                                if ($extract) {
                                  $result.='<div class="FSF_extract">'. mb_convert_encoding($text,"UTF-8","EUC-JP") . '</div>';
                      


                      これでページタイトル及び要約、内容の説明が読めています。
                      xreaの203サーバーです。
                      これでとりあえず問題なければ…Goooooood Jooooob!です grin