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

[0283] Japanese filename on FreeBSD 4.5



始めまして。横山と申します。
FreeBSD 4.5-STABLEにてmod_davを試しているのですが、例によって日本語ファ
イル名の扱いでつまずいています。

とりあえず今の状態を書きます。
mod_encoding-20011211a
mod_dav-1.0.3-1.3.6 (+mod_dav-1.0.3-1.3.6-l10n.diff)
以上はソースから、
apache-1.3.23,iconv-2.0_1,libiconv-1.7_1
はportsでインストールしてあります。

httpd.confのうち、DAV関係は以下のようにしてあります。

DAVLockDB /var/tmp/DAV/DAVLock
DavServerEncoding EUC-JP

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

Alias /DAV /home/DAV
<Directory /home/DAV>
   Options Indexes Includes FollowSymLinks
   Dav On
</Directory>

この状態で、Windowsから見たwebフォルダに日本語ファイル名のついたファイ
ルを投げると文字化けしてしまいます。
ServerEncodingをUTF-8にしても同じです。httpdのログには、

[notice] Accept mutex: flock (Default: flock)
config_merge: entered
merged: enable_function == 2
merged: server_encoding == EUC-JP

というメッセージが残っています。
ファイルはSJISでそのまま保存されている感じです。

mod_encodingではうまく行かないのですが、代わりにmod_encmssjisを読み込ま
せて、

<IfModule mod_encmssjis.c>
  EncodingEngine on
  SetServerEncoding UTF-8
  AddClientEncoding "Microsoft .* DAV" SJIS
</IfModule>

のように書いてやり、DavServerEncodingをUTF-8にすると、きちんとUTFに変換
され、ファイル操作も可能です。この時、mod_davの方は全く同じものを使って
います。
要するにiconvかな…という気がするんですが、何かお分かりになる方がいればサジェストをお願いします。


===================================
Jun Yokoyama
nysalor@xxxxxxxxxxx
jun@xxxxxxxxx
http://www.imasy.or.jp/~nysalor/
===================================