We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 21684
    • 46 Posts
    >>naoyaさん
    ほ、ほ、ほんまやー。
    立派にリロードしてますね。ごめんなさい。
    幻を見てました。
    うちも駄目っすわ。
      • 8382
      • 253 Posts
      EUC-JPもしくはShited_JIS環境の方。
      お試しいただきたいのは、ajaxSearch.phpの
      $moreResultsText = $_GET['moreResultsText'];
      $resultsIntroFailure = $_GET['resultsIntroFailure'];
      
      $searchString = $_GET['search'];
      

      ところを
      $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");
      

      として実行してみてください。Shifted_JISの方は上記EUC-JPをSJISにしてお願いします。
      encodeURIcomponent()はUTF-8にコード変換するという話がどっかにあったので、そのせいじゃないかと思うのですが。
      ちなみに、クライアントのOS、ブラウザをお知らせいただけるとありがたいです。
        • 29228
        • 109 Posts
        Quote from: naoya at Apr 07, 2006, 05:11 AM

        id="sub"を消すと文字化けはしないのですが、Ajaxは(スクリプトの最後まで)動いていない様な気がします。
        言葉足らずだったかな?
        このid="sub"を消すって行為は、Ajax(Javascript)に問題があるのか?もしくはPHP側に問題があるのか?を確かめる為の行為なんです。
        PHP側では、フォームの値をname属性で受け取ってるのですが、Ajaxはid属性から値を受け取ってるので、id="sub"を削除する事で原因が何処にあるのか明確に切り分ける事が出来るって事なんですよね。
        なので、id属性を削除するって事は、Ajaxに値が飛ばないので、当然Ajaxは動きません。 grin

        id="sub"の削除=文字化け、日本語検索の解決!って事では決してありませんので、お間違いのないようにお願い致します。
        って事で、Ajax入門って本を買っちゃいました。 grin
          • 21684
          • 46 Posts
          >>eastbindさん
          mb_convert_stringじゃなくてencodingですよね?
          どちらにせよ上手くいきません、、、euc-jpです。

          macでsafari、ff使ってます。
            • 8382
            • 253 Posts
            nobokonokoさん。
            mb_convert_encodingです。
            うまくいかないというのはどのような状態かお知らせくださるとモス少し突っ込んでお話できます。
            safariでも、一瞬、ボタンやぐるぐるが表示されたりするはずなのですが
            どうでしょうか?
            ajaxSearch=1でid="sub"がある状態でお願いしたいのですが、その辺大丈夫でしょうか?
            疑って申し訳ないですけど wink
              • 20953
              • 70 Posts
              >>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");
              

              とした場合、
              FF、Opera、safari、Webkit系のブラウザでは日本語が通らず、文字化けも解消されませんでした。
              OSはいずれもMAC OSXです(最新です)。

              なお、ボタンやぐるぐるは表示されています。
                • 21684
                • 46 Posts
                id="sub"付、ajaxSearch=1になってます。
                ajaxSearch.jsの58行目の3つあるescapeをencodeURIComponentに書き換え、
                ajaxSearch.phpの、22、23、29行目をmb_convert_encoding()

                結果は日本語検索NG、半角英数検索、壮絶に文字化け。
                以前と変らず。です。
                  • 8382
                  • 253 Posts
                  文字化けの件は置いといて
                  日本語検索がNG、というのは「There were no search results...」という既定のメッセージがでるという解釈でよろしいでしょうか?
                  もしそうであれば、ajaxSearch.phpにたいして
                  まず line 29
                  $searchString = mb_convert_encoding($_GET['search'],"EUC-JP","UTF-8");
                  $s1 = $_GET['search'];
                  1行加えていただいて
                  
                  最後のほう、line 85,88
                          echo '<p class="FSF_ajax_resultsIntroFailure">'.$resultsIntroFailure.':'.$s1.':'.$searchString.'</p>';
                      }
                  } else {
                    echo '<p class="FSF_ajax_resultsIntroFailure">'.$resultsIntroFailure.':'.$s1.':'.$searchString.'</p>';
                  てな具合に書き換え。
                  

                  こうするとメッセージはどんなのが返ってくるでしょうか?
                  検索文字列を「ここ」としてみてください。

                    • 21684
                    • 46 Posts
                    There were no search results. Please try using more general terms to get more results.:%u3053%u3053:%u3053%u3053

                    と出ました。
                      • 8382
                      • 253 Posts
                      %u3053だと、escape()と同じですね。
                      ajaxSearch.jsは改造したものが読み込まれているか確認してみていただけますか?