サポート » 使い方全般 » MySQL5になると半角文字だけしか入力されず

  • 解決済 otosuke

    (@otosuke)


    ワードプレスでサイト準備中、MySQL4で少し作り進めましたが、問題なく入力等できておりました。
    サーバでMySQLがバージョンアップしたとのことで、MySQL5に切り替えて再インスツールはできました。
    が、ブログタイトルを日本語(全角文字)で入力しサイト表示したところ、サイト名が消えてしまいました。
    投稿内容もデフォルトで入っている「Hello world!」の投稿も編集すると、英文のみの表示になります。
    http://www.otosuke.com/concert/?p=1

    ページの「紹介」はいじっていない為、全角文字が表示されます。
    http://www.otosuke.com/concert/?page_id=2

    MySQL4で少々作ったデータベースをインポートしても、何もいじらなければ全角文字も表示されますが、
    編集操作してしまうと、全角文字だけ消えて半角文字だけ残った投稿になります。
    カテゴリー名やタグ名も同じく全角文字は表示されません。

    以前問題なく動いていた時との違いは、MySQLのバージョンアップとphp.ini削除だけです。
    問題があるのは、サーバなのか、MYSQLのバージョンアップなのか、wpの設定なのか全く見当がつきません。
    まずどこから、チェックすればよいのか、お知恵をお貸しくださいますか?

    WP 2.5.1
    サーバ エックスサーバsv67
    Apache 2.0.52
    PHP 5.1.6
    MySQL 5.0.22 設定でUTF-8を指定
    プラウザ IE7
    php.iniは設定せず

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    ページの「紹介」はいじっていない為、全角文字が表示されます。

    だとすると、インストール時のデータベース INSERT では日本語が通っていると思います。投稿画面での日本語入力が反映されないとすると、PHP の mb_convert_encoding() で日本語が落ちているか、不適切な文字コードになっていて DB の文字コード (UTF-8) と違うために INSERT 時に日本語が落ちていると思われます。mbstring の設定を見直してみてください。

    データベースの文字コード(utf8_general_ciなど)を無効にしてみてください。
    当方自宅サーバにてWordPressを稼動させておりますが、
    mbstringの設定は行っておりません。

    lilyfanさん申し訳ございません。
    これは実務上の経験なのですが、
    PHPやhtaccessである程度の補足設定ができるので、
    mbstringあたりの設定でしたら
    後々のデバッグを面倒にしないためにも
    php.iniを極力さわらず変更することをオススメします。

    ※ php.iniは初期状態に戻してApacheを再起動させてみてください。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    これは実務上の経験なのですが、
    PHPやhtaccessである程度の補足設定ができるので、
    mbstringあたりの設定でしたら
    後々のデバッグを面倒にしないためにも
    php.iniを極力さわらず変更することをオススメします

    このへんはサーバーの運営方針や、管理者の考えにもよるので、一律には決められないのはそうだと思います。とはいえ、php.ini の初期設定は、php.ini-recommended だったらマトモですが、php.ini-dist の方だと mbstring の設定がメチャメチャ (internal encoding が EUC-JP で、Shift_JIS に convert 強制しているなど) なので、それに戻すのはよくないと思います。
    そして、そういう変な状態になっていないかを確認してもらうため「php.ini の設定を見直し」と書いています。

    あと、「データベースの文字コード(utf8_general_ciなど)を無効にしてみてください。」というのは意味不明なのですが……。なんぼなんでもこれは後ろ向きすぎな解決法ですよね。

    おはようございます。

    筋違いなレスをお書きし、フォーラムをかき乱してしまったことをお詫び申し上げます。
    お使いのサーバがレンタルサーバだったんですね。
    専用サーバをお使いですか?

    ちなみに、初期状態のphp.iniは以下のようになっており
    この状態でも、WordPressを稼動させることができます。
    php.iniの削除というのが気になりましたので。

    mbstring.language = Japanese
    mbstring.internal_encoding = EUC-JP
    mbstring.http_input = auto
    mbstring.http_output = SJIS
    mbstring.encoding_translation = Off
    mbstring.detect_order = auto
    mbstring.substitute_character = none;
    mbstring.func_overload = 0

    上記データベースの確認につきましては、
    デバッグの一方法とお考えいただければ幸いです。
    「MySQL 5.0.22 設定でUTF-8を指定」
    具体的には、WPで使用しているデータベース自体の文字コードをUTF-8にしたのでしょうか。
    若しくは、内部テーブルの一カラム→文字コード型をUTF-8にしたのでしょうか。

    気になったものですから、もしかしてとは思ったのですが
    筋違いでしたらスルーしてください・・・。

    lilyfanさん。
    至らぬところが多々御座いますが、今後とも宜しくお願い申し上げます。

    既に解決済みかもしれませんが、下記アドレスにて同様の現象を解決されているようです。

    ▼アドレス
    http://ja.forums.wordpress.org/topic/100

    トピック投稿者 otosuke

    (@otosuke)

    ご報告遅くなりすみません。

    返信頂いたように、データベースの文字コードをチェック等しましたが、わからずじまいで、
    一旦DBから何からサーバから全て削除して数日間放置しておりました。
    その間WPのバージョンも上がり、WP2.6.1をインストールし
    データベースをインポートしたところ問題なく動きました。
    原因がわからずじまいになってしまいましたが、結果オーライ。
    助言いただいた方々大変お世話になりました。
    ありがとうございました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「MySQL5になると半角文字だけしか入力されず」には新たに返信することはできません。