• 解決済 chabuchi

    (@chabuchi)


    wordpress・MySQL・PHP初心者です。いつもこちらで勉強させていただいています。
    wordpress2.6.2のインストールが無事終了したのですが、
    ダッシュボートの一般設定のタイトル入力や記事投稿したところ、日本語が表示されないようになっています。

    こちらのフォーラムで「[解決済み] 投稿の日本語が消える」を読み
    MySQLとPHPを確認してみました。

    MySQLでは、
    照合順序がUtf8になっていなかったため、utf8_general_ciに変更しました。(utf8_generic_ciが選択肢になかった為)

    php.iniでは、
    mbstring.http_output = EUC-JP
    mbstring.internal_encoding = EUC-JP
    mbstring.substitute_character = none

    と、なっていたので、このEUC-JPを変えればいいと思うのですが、
    他にEUC-JPを使うものを入れているので、php.iniではなく.htaccessで指定したいと思っています。

    .htaccessの内容
    <ifmodule DBの名前>
    AddDefaultCharset UTF-8
    AddType “text/html; charset=UTF-8″ .html .php
    php_value default_charset = UTF-8
    php_value mbstring.language = Japanese
    php_value mbstring.internal_encoding = UTF-8
    php_value mbstring.http_input = auto
    php_value mbstring.http_output = UTF-8
    php_flag mbstring.encoding_translation = On
    </ifmodule>

    上記のように入力して、
    example.com/abc/wordpress なら、example.com/abc/直下に置きましたが現状は変わらないままです。

    間違っている点やお気づきの点がありましたら、ご教授ください。
    よろしくお願いします。

    OS:XP SP2
    Firefox
    MySQL:4.1.21
    PHP:4.5

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • モデレーター Seisuke Kuraishi

    (@tenpura)

    現状の WordPress + WP Multibyte Patch 構成においては一部の例外を除きほとんどの場合で ユーザー側で文字コード関係の設定を行う必要はありません。

    まず .htaccess で行った設定を全て削除してください。
    下記内容の php スクリプトを WordPress 直下のディレクトリーに置いてアクセスし mbstring セクションの mbstring.xxx の Local Value がどうなっているか教えてください。

    <?php
    phpinfo();
    ?>

    OS:XP SP2

    XPということはローカルサーバでしょうか。Apachiの設定は見落としていませんか?
    htaccessでの変更を許可していないと上記設定は効いていないかもしれません。

    トピック投稿者 chabuchi

    (@chabuchi)

    tenpuraさん、ありがとうございます。

    まず .htaccess で行った設定を全て削除してください。
    下記内容の php スクリプトを WordPress 直下のディレクトリーに置いてアクセスし mbstring セクションの mbstring.xxx の Local Value がどうなっているか教えてください。

    Local Valueは次のようになっていました。
    mbstring.detect_order auto
    mbstring.encoding_translation On
    mbstring.func_overload 0
    mbstring.http_input auto
    mbstring.http_output EUC-JP
    mbstring.internal_encoding EUC-JP
    mbstring.language Japanese
    mbstring.script_encoding no value
    mbstring.substitute_character no value

    これは、EUC-JPに指定されているということでしょうか?

    shokun0803さん、ありがとうございます。
    Apachiの設定をどこで見ればいいのかわからないのですが、
    Japan Apache Users Group問題解決を読み
    .htaccess ファイルにごみを書いてリロードしてみたところ、
    サーバエラーとなりましたので、変更を許可しているのではと思うのですが・・・

    なかなか解決できずに頭を痛めています。
    お手数をおかけしますが、よろしくお願いします。

    モデレーター Seisuke Kuraishi

    (@tenpura)

    <IfModule> ディレクティブ無しで以下のように .htaccess に記述してみてください。
    phpinfo() の該当 Local Value が変化していれば .htaccess の設定は効いています。

    php_flag mbstring.encoding_translation Off
    php_value mbstring.http_input pass
    php_value mbstring.http_output pass

    これでも問題が解決しない場合はまた知らせてください。

    トピック投稿者 chabuchi

    (@chabuchi)

    ありがとうございます。

    <IfModule> ディレクティブ無しで以下のように .htaccess に記述してみてください。
    phpinfo() の該当 Local Value が変化していれば .htaccess の設定は効いています。

    ディレクティブ無しというのがちゃんとわかっていないのですが、
    次のように .htaccess に記述して両方試してみましたが
    phpinfo() のLocal Value は変化がありませんでした。

    <ifmodule DBの名前>
    php_flag mbstring.encoding_translation Off
    php_value mbstring.http_input pass
    php_value mbstring.http_output pass
    </ifmodule>

    <ifmodule DBの名前>
    php_value default_charset UTF-8
    php_value mbstring.language Japanese
    php_value mbstring.internal_encoding UTF-8
    php_flag mbstring.encoding_translation Off
    php_value mbstring.http_input pass
    php_value mbstring.http_output pass
    </ifmodule>

    度々すみません。
    よろしくお願いします。

    モデレーター Seisuke Kuraishi

    (@tenpura)

    <ifmodule DBの名前>
    </ifmodule>
    の2行は書かないで、という意味です。

    問題の切り分けが難しくなりますので前述の3行だけを書いてください。

    トピック投稿者 chabuchi

    (@chabuchi)

    そうだったのですね。すみません。

    php_flag mbstring.encoding_translation Off
    php_value mbstring.http_input pass
    php_value mbstring.http_output pass

    3行だけで試してみたところ、500 Internal Server Errorになりました。

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, webmaster and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.

    よろしくお願いします。

    モデレーター Seisuke Kuraishi

    (@tenpura)

    phpinfo() の Server API 項目を確認してください。
    PHP が CGI 版で動作している場合は .htaccess で php の設定は行えません。
    その場合、マスター、あるいは独自 php.ini で設定を行うことになります。
    モジュール版の場合は、shokun0803さんがおっしゃっているように Apache の設定に問題がある可能性があります。

    いずれにせよ文字列入出力のトラブルの原因になる前述3行に該当する設定の修正は行ってください。

    トピック投稿者 chabuchi

    (@chabuchi)

    ありがとうございます。

    phpinfo() の Server API 項目を確認してください。
    HP が CGI 版で動作している場合は .htaccess で php の設定は行えません。
    その場合、マスター、あるいは独自 php.ini で設定を行うことになります。

    確認してみたところ、CGIでした。
    .htaccess で php の設定は行えないのですね。なるほど、よくわかりました。
    php.iniで設定するかどうか、EUC-JPを使っているものがあるので
    よく考えてみようと思います。
    いろいろと教えていただき、本当にありがとうございました。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「日本語が表示されない」には新たに返信することはできません。