- PR -

apacheのファイル一覧のcharsetについて

1
投稿者投稿内容
rviper
常連さん
会議室デビュー日: 2004/06/15
投稿数: 34
投稿日時: 2006-08-31 09:55
Apache2.0でIndexOptionsを指定してファイル一覧を表示したのですが、
ブラウザ(IE6)でエンコードを見るとUTF-8になってしまいます。
パケットキャプチャーをしてみるとContent-typeヘッダのcharsetがUTF-8になっていました。
このcharsetをShift-JISに変更するには、どういう設定をすればいいのでしょうか?
ちなみにAddDefaultCharsetをShift-JISにしたりしてみましたが、変化はありませんでした。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-08-31 10:47
IANAにはShift-JISという定義は無いと思うのですが・・・。

http://www.iana.org/assignments/character-sets

他を試してみては。
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2006-08-31 12:18
ざっと httpd-2.0.59/modules/generators/mod_autoindex.c のソースを見てみたところ、charset= を設定できるようにはなっていないようです。

コード:

#if APR_HAS_UNICODE_FS
ap_set_content_type(r, "text/html;charset=utf-8");
#else
ap_set_content_type(r, "text/html");
#endif




[ メッセージ編集済み 編集者: スフレ 編集日時 2006-08-31 12:20 ]
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2006-08-31 12:45
引用:

#if APR_HAS_UNICODE_FS
ap_set_content_type(r, "text/html;charset=utf-8");
#else
ap_set_content_type(r, "text/html");
#endif



さらに、apr.h を見てみると、APR_HAS_UNICODE_FS は 0 にハードコーディングされているので、特に明示的な設定されていなければ、強制的に utf-8 に設定されることはないようですね。実際にやってみましたが、私の環境では AddDefaultCharset で設定した値が採用されました。
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2006-08-31 13:04
引用:

さらに、apr.h を見てみると、APR_HAS_UNICODE_FS は 0 にハードコーディングされているので、特に明示的な設定されていなければ、強制的に utf-8 に設定されることはないようですね。実際にやってみましたが、私の環境では AddDefaultCharset で設定した値が採用されました。



なるほど、ap_set_content_type() は AddDefaultCharset の影響を受けるんですね。

見たところ、Windows 上の Apache httpd だけ APR_HAS_UNICODE_FS が 1 (→ charset=utf-8固定)になるようですね。rviperさんのサーバ環境は何でしょうか?
rviper
常連さん
会議室デビュー日: 2004/06/15
投稿数: 34
投稿日時: 2006-08-31 14:57
返信ありがとうございます。

なるほど、WindowsだとUTF-8固定になるのですか・・・
ちなみに環境をRedHatに変更して実行したのですが、
表示上のエンコードはShift_JISになりました。
但し、日本語ファイル名をURLに直接指定すると404 Not Foundに
なってしまいます。これはいったい・・・
1

スキルアップ/キャリアアップ(JOB@IT)