- PR -

Apache ← samba ← Windowsディレクトリ による文字化け

1
投稿者投稿内容
abe
常連さん
会議室デビュー日: 2003/08/14
投稿数: 31
投稿日時: 2003-09-30 01:47
皆さんこんにちは。

RedhatLinux
Apache1.3.x
Samba

同一ネットワーク内のWindows2000上の共有ディレクトリを
Linuxからsmbmountでマウントします。
そのディレクトリをLinux上のApacheで公開しています。

そのディレクトリはApacheのOptions Indexesを有効にして
ディレクトリ一覧を表示させています。
クライアント側はInternetExplorer6.0を利用しました。

日本語のファイル名でも一覧表示は正しく表示されるのですが、
クリックして保存したり、表示したりすると、ファイル名が文字化けします。
その際はファイル自体は正常に開くことが出来ます。
ダウンロードする場合は正常に行えます。
ファイル名のみが文字化けを起こすようです。

smbmountで文字コードをEUC、UTF8に指定してマウントしてみましたが、
同じ結果です。
どのような解決方法が考えられるでしょうか。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2003-09-30 07:19
# そういう経験があるわけではないのですが、
# ぱっと思いつくところですと...

> クライアント側はInternetExplorer6.0を利用しました
ということですのでWindowsだろうと思うのですが、
クライアントのOSとファイルシステムは何でしょうか?
それから、共有しているWindows2000のファイルシステムは
何でしょうか?

# いかにもありそうなのは Windows2000 側が NTFS で、
# クライアントがWindows95系OS、というケースですが...
藍空
常連さん
会議室デビュー日: 2003/06/24
投稿数: 49
投稿日時: 2003-09-30 18:07
URLエンコードされているのではありませんか?

通常HTTPのリクエストは、ASCIIの英数字と一部の記号以外はURLエ
ンコードされます。
例えば、検索サイトで条件として「日本語」を入力すると、ブラウ
ザからリクエストを出すときに変換が行われています。

ex. Googleで「日本語」を条件に検索
 http://www.google.co.jp/search?q=%E6%97%A5%E6%9C%AC%E8%AA%9E&ie=UTF-8&oe=UTF-8&hl=ja&lr=


同様に、Apache経由で日本語ファイル名を含むディレクトリ一覧を
表示させた状態で、そのソースを見ていただければお分かりになる
と思いますが、各ファイルのリンク先は、URLエンコードされた状
態になっていると思います。

ex.
 日本語 -> %c6%fc%cb%dc%b8%ec
 ※EUCの場合

受け取ったWebサーバ側では、エンコードされた文字列を元に戻し
て処理することとなります。


これを回避するためには、特殊な独自のクライアントを作るしかな
いのではないかと思うのですが.....。
# あまり、勝手にURLエンコードを逆変換されても問題が起こりそ
# うですけど。

私はそこまでできないので、Webサーバでファイルを公開する場合
は、英語ファイル名だけにしています。 (^_^;)
abe
常連さん
会議室デビュー日: 2003/08/14
投稿数: 31
投稿日時: 2003-10-01 03:13
引用:

ぽんすさんの書き込み (2003-09-30 07:19) より:
# そういう経験があるわけではないのですが、
# ぱっと思いつくところですと...

> クライアント側はInternetExplorer6.0を利用しました
ということですのでWindowsだろうと思うのですが、
クライアントのOSとファイルシステムは何でしょうか?
それから、共有しているWindows2000のファイルシステムは
何でしょうか?

# いかにもありそうなのは Windows2000 側が NTFS で、
# クライアントがWindows95系OS、というケースですが...



ご返答ありがとうございます。
LinuxのSAMBAクライアントでWindows2000のNTFSをマウントしています。
マウントしたLinux上のApacheでそのディレクトリを公開しています。

WWWの閲覧はWindows2000+IE6です。

確かにソースを見るとURLエンコードされていました。
これは文字コード云々の問題では無いのでしょうか。
IEの機能としてエンコードされた文字列を復元してファイル名とする機能は無いのですね。
日本語ファイル名のエンコードをしないという方法は可能でしょうか。
Apache経由でWebDAVを利用してファイルをダウンロードした場合は
日本語の扱いの場合は大丈夫でしょうか?
それで解決出来るのであればWebDAVを利用しようかと思います。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2003-10-01 08:13
おっと、クライアントが何だろうとそこでは関係無かったですね、
すみません。

> Apache経由でWebDAVを利用してファイルをダウンロードした場合は
> 日本語の扱いの場合は大丈夫でしょうか?
> それで解決出来るのであればWebDAVを利用しようかと思います。

せっかくだからここの記事をば。
http://www.atmarkit.co.jp/flinux/special/webdav03/webdav01a.html
http://www.atmarkit.co.jp/flinux/special/webdav/webdav03a.html
abe
常連さん
会議室デビュー日: 2003/08/14
投稿数: 31
投稿日時: 2003-10-01 14:26
どうもありがとうございます。
まずはこの方法を試して見ます。
こちらはApache単体に比べて日本語に関する資料も豊富にあるようですね。
1

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