Lighttpd for windows(以下URL参考)
http://www.kevinworthington.com:8181/index.php/category/computers/lighttpd/
を使い、付属のmod_webdavを使って見ましたが、ファイル名の文字コードが違うようで、文字化けしてしまいます。
このLighttpd以外の方法、もしくはこの方法で文字化けを改善する方法を教えてください。
ちなみに文字化けはこのような感じです。
・クライアントから「テスト.txt」を配置 → サーバ上で「繝・せ繝・txt」となる。
・サーバ上で「テスト.txt」を配置 → クライアントで見ると「テeテXテg.txt」と見える。
※クライアントはWindowsXPのネットワークプレース機能を使用
この文字化けを見る限りどうやらクライアントはデータをUTF-8として扱っている気がします。
よろしくお願いします。
一番簡単なのはIISでWebDAVを構築するのが簡単ですね。文字化けもしないし。
http://www.apec.aichi-c.ed.jp/project/joho/kanri/win2000/WebDAV....
mod_encodingですか。
lighttpd for windowsは、モジュールはDLLになっているので動作するmod_encodingのバイナリが見当たらないんですよね。
一応探してみたんですが。
となるとやっぱりApacheですか。
一応、質問をする前からmod_encodingがあるということは知っていましたが、サーバ側エンコードはUTF-8固定という話じゃないですか。
SetServerEncoding UTF-8
これってwebDAVサーバがLinuxなどに構築して、Windowsのクライアントからのアクセスを適切な文字コードで運営できるものなのかと思っていたのですが。
SetServerEncoding UTF-8という設定はWindows上にwebDAVサーバを構築するのにも使えるのかという心配があります。
しかし次のご回答のURLを見るとWindows編になっているしなぁ。
Apache2ならここに書いてある方法でできます。
http://www.aconus.com/~oyaji/www/apache_win_dav.htm
日本語ファイル名フォルダ名を扱うには、davモジュールのほかにmod_encodingというのを入れないとだめです。
httpd.confの設定がちょっとめんどくさいです。
というわけで、Windows編と書いてあるからには問題はないということになるとは思う、mod_encodingの「SetServerEncoding UTF-8」。
でもURL先にも・・
>>SetServerEncoding UTF-8
>>サーバー側でファイル名に利用されるエンコーディングを指定する。UTF-8以外は不可。
と書いてありますが、Windowsではファイル名はSJIS何じゃないかという疑問があります。
http://blog.goo.ne.jp/hiuchida/e/ce2e1d96cb0dc882e5b4e4b4bb28017...
上記URL先を見たところ、私の環境(ネットワークプレース)は「g」になるようで「UTF-8のURLEncoding形式。」でデータを送るようです。
つまり、元々UTF-8ということですよね。
mod_encodingがUTF-8に変換するということなら、私の環境では正常に動いてもよさそうなもの。
となるとlighttpd for windowsかこれに含まれるモジュールが日本語を考慮してないせいでしょうか。
単純に考えれば、Apache2でwebDAVサーバを構築したらmod_encodingなしで改善しそうな気がします。
でも実際のところは違うんでしょうかね。
あとYotaさん、コメントでの設定例ありがとうございます。
ご回答ありがとうございます。
なるほどIISですか。
確かに文字化けの心配はなさそうですね。
でもなんか負けた気がするので、最終手段にとっておきたいと思います。
ところで、今回は自宅用にwebDAVサーバを建てるので、サーバはWindowsXP MediaCenterだったりします。
IISはたぶん機能限定バージョンかと思いますが、webDAVは使えるのかがちょっと心配ですね。