[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[0293] Re: Japanese filename on FreeBSD 4.5



こんばんは、山田です。

> えーと、debugにすると以下のようなログが出力されました。
>
> [debug] mod_encoding.c(413): mod_enc_postread: oenc == EUC-JP
> [debug] mod_encoding.c(418): mod_enc_postread: ienc <> UTF-8
> [warn] iconv_string: conversion error
> [debug] mod_encoding.c(418): mod_enc_postread: ienc <> MSSJIS
> [debug] mod_encoding.c(418): mod_enc_postread: ienc <> JA-AUTO-SJIS-MS
> [debug] mod_encoding.c(436): mod_enc_postread: no conversion done

ありがとうございます。これを見ると MSSJIS/JA-AUTO-SJIS-MS の時は
変換処理にも入らないでスキップされているようです。UTF-8 -> EUC-JP の
時だけは実際に試行して失敗しているので、これらのエンコーディングを
扱う場合に入る libiconv_hook 内に処理が行っていないように思えます。
そこで、

> <IfModule mod_encoding.c>
>   EncodingEngine on
>   SetServerEncoding EUC-JP
>   DefaultClientEncoding JA-AUTO-SJIS-MS
>   AddClientEncoding "Microsoft .* DAV" MSSJIS
>   AddClientEncoding "cadaver/" EUC-JP
> </IfModule>

を

  DefaultClientEncoding JA-AUTO-SJIS-MS SJIS

と、SJIS を追加して、iconv が確実に SJIS -> EUC-JP の変換を試行する
ように設定を追加して様子を見てもらえないでしょうか?

コード上は JA-AUTO-SJIS-MS が MSSJIS -> SJIS へのフォールバックを
必要に応じてするはずなのですが、ここで libiconv_hook が入っていない
場合は MSSJIS/JA-AUTO-* が iconv が認識できない無効エントリになり、
上記のような挙動になったのではと推測しています。

--
Taisuke Yamada <tai@xxxxxxxxx>
Internet Initiative Japan Inc., Technical Planning Division