We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 21684
    • 46 Posts
    残念ながら化けてました。
    今日は落ちます。。。。
      • 29228
      • 109 Posts
      そう言えば、UTF-8環境の場合でもSafariは文字化けするんでしょうかね?
      いろいろ調べてみたらSafariはUTF-8で送信できるけど、受信はUTF-8で出来ないみたいです。(苦笑)
      UTF-16なら文字化けしないらしい。
      私の予想だとUTF-8環境でも、Safariは化けると思ってるんですが。。。 huh
        • 8382
        • 253 Posts
        takumiさん。
        私のところでは化けませんが、takumiさんとこのトップは化けました。
        違いをずっと調べていたのですが、レスポンスヘッダのContent-typeにうちはcharset=utf-8が入っていました。
        これは、.htaccessに
        AddType "text/html; charset=UTF-8" html
        AddType "text/css; charset=UTF-8" css
        AddType "text/xml; charset=UTF-8" xml
        AddType "application/x-javascript; charset=UTF-8" js 
        AddType "application/x-httpd-php; charset=UTF-8" php 

        こんなの入れてたからです。

        昔javaで苦労したときの(見栄!)習慣みたいなものです。

        そこで提案。takumiさん、nobokonokoさん、naoyaさん。
        EUC-JP環境で,
        mbstring.encoding_translation On
        mbstring.http_input auto
        のとき、
        encodeURIcomponentの3行の変更。ただしajaxSearch.phpは40行目に
        header('Content-Type: text/html; charset=euc-jp');

        を挿入するのみとする。
        で、一応テンプレートのMETAタグが
        <meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
        

        であることを確認したうえで。euc-jpのところは、もちろん[(etomite_charset)]でOK。

        これでFFでもsafari(多分1.3.xはOK、2.0は?)でもeuc-jpで通せると思うのですが。いかがなもんでしょう。
        これでOKなら、
        mbstring.encoding_translation Off
        mbstring.http_input pass
        のときでも
        ajaxSearch.phpの29行目のUTF-8=>EUC-JP変換を入れるだけで済むはず。
          • 20953
          • 70 Posts
          >>eastbindさん

          mbstring.encoding_translation On
          mbstring.http_input auto

          をどうやって設定するのか分かりませんがとりあえず状況を
          phpの上3行を変更、40行目にコード挿入、66行目から70行目はデフォルトのままでテストしました。

          FFとOperaは基本的にはどの語句でも通ります(もちろん、端の方の一部の文字は化けますが、全体と言う訳ではありません)。
          safariやwebkit系のブラウザでは語句により正常な表示と文字化けが発生します(化ける時はページタイトルを含め日本語表示全体が化けます)。
          ただ、safariやwebkit系で完全に化けて表示されていたことに比べると、かなりの前進な様な気がします。
          あともうチョイなんですがねぇ…

          追記:デフォルトのajaxSearch.phpの29行を
          $searchString = mb_convert_encoding($_GET['search'],"EUC-JP","UTF-8");

          に変更し、40行目に
          header('Content-Type: text/html; charset=euc-jp');
          を追加、ajaxSearch.jsはデフォルトでも同様の結果でした。

          ついでにMac IE5で見てみるとAjax自体に対応してないのか、普通にFSFで表示されます。
            • 8382
            • 253 Posts
            naoyaさん。
            IE5はencodeURIcomponentが無いので今回置いといて、
            mbstringの設定は、MODxマネージャ->管理->システム情報->phpinfo->Viewをクリックすると見る事ができます。スクロールしてください。もし、
            mbstring.encoding_translation Off Off
            mbstring.http_input pass pass
            だったら、MODxのディレクトリの .htaccessの始めの方に
            php_flag mbstring.encoding_translation On
            php_value mbstring.http_input auto
            を書き入れれば変わります。

            語句によってですか?ちなみに tiger ですか?もしやintel Mac ?
            半角のみの場合、全角の場合、 各々の成功のとき、失敗のとき
            で決まった文字化けにならないのでしょうか?これはまた意外な。
              • 20953
              • 70 Posts
              Quote from: eastbind at Apr 10, 2006, 04:00 AM

              だったら、MODxのディレクトリの .htaccessの始めの方に
              php_flag mbstring.encoding_translation On
              php_value mbstring.http_input auto
              を書き入れれば変わります。

              >>eastbindさん
              .htaccessを変更してみました。php_flag mbstring.encoding_translation On Offになっています。
              上記の変更をすると文字化けはしなくなるのですが、検索対象ではないものがヒットし、検索したいものがヒットしません(日本語を入れているのに英文のページまでヒットしています)。On Onじゃないとマズいのでしょうか?

              Quote from: eastbind at Apr 10, 2006, 04:00 AM

              語句によってですか?ちなみに tiger ですか?もしやintel Mac ?
              半角のみの場合、全角の場合、 各々の成功のとき、失敗のとき
              で決まった文字化けにならないのでしょうか?これはまた意外な。
              OSはタイガーでPPCのPowerBookG4 1.67Ghzです(仕事上、クラシック環境が今のところ必要なので…intel欲しいなぁ…)。

              検索の文字化けは語句によって変わります。ヒットした語句の位置によって左右されているかもしれません。
              おまけに…なぜかsafariだけ日本語が通らなくなりました。半角英数はちゃんと通るのに…表示も(まともに表示される時は)日本語で表示されるのに。
              う〜ん? huh
                • 8382
                • 253 Posts
                naoyaさん。
                お手間取らせました。御協力感謝します。
                もう少し調査して考えます。
                ただ、FSF_Ajaxは0.9.2に取り入れられそうなのです。
                そうなると、たちまちQuickEdit並に文字化けしなくなったりしないかなぁ
                と考えています smiley

                #私の知り合いにもQuarkとフォントのためにMacOS9のままの人が結構います。
                #IntelMacは皆に人気ですが、持ってる人を見た事はありませんぬ。 wink

                  • 21684
                  • 46 Posts
                  php_flag mbstring.encoding_translation Off
                  php_value mbstring.http_input pass

                  にしていますが、29行めに加え、22、23行目もmb_convert_encodingしないと文字化けしました。

                  検索時の文字化けなんですが、

                  ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ123456789

                  なんて文章を作って(あ、じゃなくても検索結果に全文が出ないくらいの長文ならなんでもいいです。)
                  123、1234、12345、123456…と検索してみると、交互に化けます。

                  あと、safari使ってる人に聞きたいのですが、safariでスニペットをマネージャーから変更するとスニペット死にませんか?
                    • 21684
                    • 46 Posts
                    スニペットを変更じゃない、編集でした。
                    具体的には、with ajaxの$resultsIntroFailureとかをいちいち指定するのも面倒なので直接書きなおして、保存すると、
                    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /xxx/manager/includes/document.parser.class.inc.php(691) : eval()’d code on line 628
                    とエラーが出てスニペットがたちあがらなくなってしまいます。

                    値を元に戻しても、どうにもエラーが直らないので、Fire Foxからスニペットを作成し直すと通常通り動くようになります。
                      • 8382
                      • 253 Posts
                      nobokonokoさん。safariでの編集がおかしかった事はありません。
                      safariでMODx設定->ユーザ設定の表示がおかしいとかはありますが。

                      Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /xxx/manager/includes/document.parser.class.inc.php(691) : eval()’d code on line 628
                      これは、snippetがPHPエラーを起こしたときのメッセージそのものですね。
                      「保存後にスニペットを実行」をチェックしてしまったのではないでしょうか?

                      safariでお試しありがとうございました。nobokonokoさんのsafariのバージョンいくつでしょう?
                      また、検索のほうはちゃんと意図どおりにヒットしているという事でですね?