本文へジャンプする
カテゴリー選択 »
全てを表示
Tips
その他
スキン
ピックアップ
プラグイン
レビュー
Tipsのタグ一覧 »
一覧を開閉する
プラグイン
ハック
v2.5b
UTF-8
fancyurl
v3.3
スキン
インストール
v2.0
TrackBack
デバッグ
xrea
bookmarklet
スパム
MySQL
Blacklist
v3.2
ログ
スキン変数
v3.1
RSS
ブログ別
文字化け
コメント追跡
BOM
CustomURL
MultipleCategories
mod_rewrite
コメントの最大量
google
Javascript
ライブラリ
Markdown
CSS
phpMyAdmin
nucleus
robot
固定リンク
テンプレート
スクリーンショット
サブドメイン
テンプレート変数
PHP
Counter
移行
P3P
セットアップ
リファラー
« UTF-8 とBOM (Byte Order Mark)
UTF-8で phpMyAdmin »

ブログツール、NucleusCMSに関する情報を掲載

[引っ越しました] 過去記事を datoka.jp/old にまとめてます。
ブログだとか
Nucleusだとか
制作物だとか

この記事の概要

ある時点で突然おきた、Nucleus(UTF-8)の文字化け。
結局.htaccessでのPHP設定で、文字コードまわりを指定して解決しました。

参考:PHP: マルチバイト文字列関数(mbstring) - Manual

<IfModule mod_php4.c>
    php_value default_charset UTF-8
    php_value mbstring.language Japanese
    php_value mbstring.internal_encoding UTF-8
    php_flag  mbstring.encoding_translation On
    php_value mbstring.http_input auto
    php_value mbstring.http_output pass
</IfModule>
※解決後、さらに次のように変更して、今の記述に落ち着いた mbstring.languageを neutral から Japanese に変更 mbstring.http_output を UTF-8 から pass に変更し、output_buffering, output_handler を削除

でもこんな指定をしなくても大丈夫だった時があったのはなんでだろう・・・謎だ。
→XREAはサーバー側の設定が勝手に変わってることがあるようだ。PHPのバージョンアップ時に関係あるかも。

文字コードが内部エンコーディングと出力で別々なのはめんどくさそうなので統一して、そのままpassするようにしています。 http_input auto にしてますが、これは detect_order がデフォルトで各種文字コードに対応してるのを前提にしてます(日本のサーバーなら問題ないと思う)。そうでない場合は detect_order も設定したほうがよさげ。

languageは、メール送信時、JIS変換するかチェックするのに使われるようです(勝手に変換してくれるなんて知らなかった・・)

コメント一覧

この記事にコメントはありません。

トラックバック一覧

[Trackback] [Debianメモ]UTF-8環境でのapache2文字化け対策

 apache2をインストールして、Webサーバを立てたらUTF-8ではページが...

関連がありそうな記事一覧

ページの先頭に戻る