We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 19033
    • 892 Posts
    こんにちは。よろしくお願いします。

    今まで、問題なく利用していたのですが、急に管理画面の一部で、
    文字化けが起こるようになってしまいました。考えられるのは、
    サーバー側で、OSなどのバージョンアップをした後...?な気がするのですが。。
    (違うかも知れませんが、今のところ他に思いつかないのです...)。

    具体的な症例は、リソースの作成/編集時に、新しくカテゴリを作ろうと思って、
    「カテゴリ作成:」のところに2バイト文字を入力すると、「\カテ\ゴ�\�」(←「カテゴリ」と入力して保存)
    のような具合になります。また、ユーザー管理のフルネームに2バイト文字を入力しても同じ様になります。

    他にもあると思うのですが、気がついたのは今のところ二つだけで、他の部分たとえば、「内容」「タイトル」
    などは化けません。。

    それでこの文字化けはphpMyAdmin でデータを見ても同じように化けているのですが、
    phpMyAdmin で「カテゴリ」と入力し直して保存すると、ちゃんと「カテゴリ」と表示され、
    その状態でMODxの管理画面で見ると、文字化けが直っていて、「カテゴリ」と表示されています。

    ただし、再び、MODxの管理画面で保存すると、同じように化けてしまうのです。。

    php.ini は現在、以下のようにしてあります(文字に関係ありそうな部分だけ抜粋)。
    default_charset = UTF-8
    mbstring.language = Japanese
    mbstring.internal_encoding = UTF-8
    mbstring.encoding_translation = off
    mbstring.http_input = auto
    mbstring.http_output = pass


    環境は以下です。
    MODx 096 rev 2767
    MySQL 4.0.27
    PHP 4.4.7

    運用文字コードは utf-8 です。

    どのあたりが怪しそうでしょうか。。?
    どうぞよろしくお願い致します。
      • 28073
      • 164 Posts
      はずしてるけど知れませんが、php.iniの設定でmagic_quotes_gpcがOnになってないでしょうか?
      こいつがOnだと日本語に\が付いたりするので。

      ただ、一部が文字化けしてるので違うかも… undecided

        • 19033
        • 892 Posts
        soushi さん。どうもありがとうございます。

        php.iniの設定でmagic_quotes_gpcがOnになってないでしょうか?
        はい。デフォルトでonになっていました。それで、「magic_quotes_gpc = off」と書いて
        off になったんですけれども、現象は治りませんでした。。でも、これは、off の方が良いんですね。

        サーバー側のバージョンアップの内容は以下のようなのですが、
        主な変更:
        OS FreeBSD 4.10 → 6.1
        Perl Perl 5.8.4 → 5.8.8
        Jcode.pm 0.83 → Jcode.pm 2.05
        Jcode.pm のバージョンアップにより、Jcode.pm は Encode.pm の
        Wrapper として機能するようになります。Encode.pm に対応して
        いないプログラムの場合、影響を受ける可能性があります。
        maildrop
        maildrop 1.6.2 → 2.0.4
        正規表現、パターンマッチエンジンに変更があります。
        問題が発生しそうなルールにつきましては .mailfilter に
        (旧正規表現、パターンマッチで動作する指示の)設定を追加する
        予定です。

        SpamAssassin
        SpamAssassin 2.64 → 3.2.x

        サーバーのバージョンアップのせいでないとしたら、後は、何かありますでしょうか。。
        自分ではちょっと思いつけなくて。。
          • 19033
          • 892 Posts
          こんにちは。よろしくおねがいします。

          MODx0961を新規にインストールしてみましたが、同じ現象が出ています。

          ・リソースの管理画面で「カテゴリ作成」に2バイト文字を入力して保存すると文字化けする
          ・ユーザ管理で「フルネーム」に2バイト文字を入力して保存すると文字化けする
           (たぶん他にもあると思われます...)

          ...なのですが、ユーザー管理の方は、
          新規にユーザーを作成するときに「フルネーム」に2バイト文字を入力して保存しても化けないのです。

          ただし、
          1.上記のユーザを編集しようとしてそのユーザーを開く
            「フルネーム」に2バイト文字が入っている。この時点では正常
          2.保存する。→ 化ける

          ...ということは、こちらの方は、新しいレコードを作成しに行くときは、2バイト文字があっても、
          問題ないと言うことなんでしょうか。。??
            • 28073
            • 164 Posts
            こんばんわー。

            Quote from: MEGU at Nov 12, 2007, 07:47 PM

            php.iniの設定でmagic_quotes_gpcがOnになってないでしょうか?
            はい。デフォルトでonになっていました。それで、「magic_quotes_gpc = off」と書いて
            off になったんですけれども、現象は治りませんでした。。でも、これは、off の方が良いんですね。

            本当はoffのほうがいいんですが、MODxのソースを見たらOnでも文字化けしないような処理が施されてました laugh
            なのでどちらでも大丈夫です。

            Quote from: MEGU at Nov 12, 2007, 07:47 PM

            サーバーのバージョンアップのせいでないとしたら、後は、何かありますでしょうか。。
            自分ではちょっと思いつけなくて。。

            結構大掛かりにバージョンあげてますね。
            FreeBSDを4から6とは。
            mysqlは特にバージョン上がってないのでしょうか?
            ネットで調べると4.0系から4.1系に上がる時に文字化けに出くわすことが多いっぽいです。

              • 19033
              • 892 Posts
              soushiさん。どうもありがとうございます。

              本当はoffのほうがいいんですが、MODxのソースを見たらOnでも文字化けしないような処理が施されてました
              なのでどちらでも大丈夫です。

              なるほど。。ありがとうございます。そしたら、offのままにしておこうと思います。

              mysql のバージョンは4.0.27 で以前のままです。
              (phpMyAdminで接続したとき、そういう風にmysqlのバージョンが出ているのですけども。。)

              PHPのバージョンが以前は4.4.4だったはずなのですが、4.4.7 になっていました。。
                • 28073
                • 164 Posts
                こんばんわです。

                Quote from: MEGU at Nov 13, 2007, 08:23 PM

                mysql のバージョンは4.0.27 で以前のままです。
                (phpMyAdminで接続したとき、そういう風にmysqlのバージョンが出ているのですけども。。)

                PHPのバージョンが以前は4.4.4だったはずなのですが、4.4.7 になっていました。。

                MODxの管理画面で「レポート」→「システム情報」のページにphpinfo()があるんですが、こちらのmysqlのバージョンはどうでしょうか?
                もしかしたら本体のMySQLとバージョンが違うかも知れないです。

                あとだめかもしれないですが、文字化け時に以下の設定で回避できた人もいるみたいです。

                ファイル:./manager/index.php
                } else {
                    mysql_select_db($dbase);
                }
                


                ↓ mysql_queryを追加。

                } else {
                    mysql_select_db($dbase);
                }
                mysql_query("SET NAMES utf8;");
                


                ファイル:./manager/includes/extenders/dbapi.mysql.class.inc.php
                      } else {
                         $dbase = str_replace('`', '', $dbase); // remove the `` chars
                         if (!@ mysql_select_db($dbase)) {
                


                ↓ mysql_queryを追加。

                      } else {
                         mysql_query("SET NAMES utf8;");
                         $dbase = str_replace('`', '', $dbase); // remove the `` chars
                         if (!@ mysql_select_db($dbase)) {
                


                これでだめなときは「utf8」って書いてるところを「binary」に変えてみるといいかもしれません。
                  • 19033
                  • 892 Posts
                  soushi さん。おつきあい下さってどうもありがとうございます。

                  MODxのシステム情報で確認しました。
                  mysql のバージョンは 4.0.27
                  PHP は 4.4.7 でした。

                  それと、「mysql_query("SET NAMES utf8;");」を教えて頂いた2つのファイルに追加したのですが、
                  変化ありませんでした。また、「mysql_query("SET NAMES binary;");」としてみたのですが、
                  こちらも同じでした。。

                  それで気がついたのですが、たとえば、ユーザのフルネームの欄に、「ログインユーザ」と
                  入力して保存すると、「\ログインユー�\�」になるんですけど、この状態で、もう一回
                  保存すると、「\\\ログインユー�\\�\�」こんなふうになって、さらに保存すると、
                  化け文字や、「\」が追加されていきます。。
                    • 33463
                    • 35 Posts
                    こんちは。一応報告しておきますね。
                    私んとこでもMEGUさんと同じ状況です。
                    ハッスルサーバーにて展開しておりますが、カテゴリに「普段使わない」を作成したら「\普通使��\�\ない 」に化けました tongue
                    サーバー仕様は詳しく公開されてませんが、phpinfoで見ると以下のようになってます。

                    • OS : FreeBSD 4.1.1
                    • MySQL : 4.0.26
                    • PHP : 4.4.4
                    • Apache : 1.3.37
                    特に気にならないので放置してますが^^;
                      • 19033
                      • 892 Posts
                      zephir さん。情報どうもありがとうございます。
                      他のサーバーでも出ている現象なんですね。

                      mysql のバージョンが4.0x系ででているんでしょうか。。
                      でも、さくらの場合、出ているサーバーと出てないサーバーがあるみたいなので、
                      その他のナニカとの関わり合いで出ると言うことなのかな。。