カテゴリ | |
サマリ | ShiftJISの添付テキストファイルが化ける |
バージョン | 1.4.7-notb |
投稿者 | MizukiYuzuhara |
状態 | 完了 |
投稿日 | |
表題の件について、ShiftJISのテキストファイルをダウンロードすると文字化けが発生します。化けた状態で、ShiftJISへページをエンコードすると正常に表示されるので、pukiwikiからダウンロードされたもののエンコードをShiftJISと認識していないと推測されるのですが、どのようにしたら良いでしょうか?
<環境>
- OS : Debian 3.2(etch)
- Web Server : Apache 2.2.3
- PHP : 5.2.0-8+etch4
<やったこと>
- 質問箱/236の通り、「mb_http_output('pass')」及び「ini_set('default_charset','');」をソースに挿入→化ける
- 上記のソースをはずす→同じく化ける
- php.iniのmbstring設定変更→化けたまま
- 各設定変更後、apacheは再起動している
<現在のPHPの設定>
- Multibyte Support enabled
- Multibyte string engine libmbfl
- Multibyte (japanese) regex support enabled
- Multibyte regex (oniguruma) version 4.4.4
- Multibyte regex (oniguruma) backtrack check On
- mbstring.detect_order SJIS,EUC-JP,JIS,UTF-8,ASCII
- mbstring.encoding_translation Off
- mbstring.func_overload 0
- mbstring.http_input pass
- mbstring.http_output pass
- mbstring.internal_encoding EUC-JP
- mbstring.language Japanese
- mbstring.strict_detection Off
- mbstring.substitute_character no value
よろしくお願いします。
- 確認ですが、添付したテキストファイルの拡張子は何ですか?また、「化けた状態で、ShiftJISへページをエンコード」とはブラウザの設定でエンコード種別を変更する(例えばIEなら[表示]->[エンコード]->[Shift-JIS])という意味でよいでしょうか?*1 --
- ご質問の件について
- レス遅れましてすいません。こちらで同様に試した所、HTTPレスポンスヘッダ(Content-type)に「charset=~」は付かないのですが(これが普通のはず)、そちらの環境ではどうでしょうか。 --
- 返事が遅くなり申し訳ありません。
対象ファイルのHTTPレスポンスヘッダのContent-Type項目は、
- apache2.conf内に「AddDefaultCharset EUC-JP」が入っていたため、自動的にEUC-JP文書として処理していたようです。
同項目を削除した上でサーバー再起動で文字化けが発生しなくなりました。
本当にありがとうございました。 -- MizukiYuzuhara