アプリ版:「スタンプのみでお礼する」機能のリリースについて

7つほど前に他の方から同様の質問がありましたが、私も日本語のファイル名について試行錯誤しています。
前の方の回答はすでに締め切られていますのであらためて投稿させていただきますのでよろしくお願いします。
私が試してみたのは次のページです。

http://bellcall.nsf.jp/test/dltest.html

テストしたのは Windous2K だけですが、ブラウザとGETのしかたによって結果が違ってきました。
他の環境でテストするとどんな結果になるか知りたいのです。
お手すきのときに上記のページでテストして結果をお知らせいただけたら嬉しいです。

A 回答 (3件)

第一の問題として、サーバーのOSがファイル名として使用している文字コードです。


Windowsエクスプローラー(マイコンピューターをダブルクリックしたときのウインドウ)や、
Windows上で動作するアプリケーションでファイルを作成すると、
ファイル名はShift_JISの「日本語.zip」になります。

ファイル名がShift_JISなら、そのファイルにアクセスするためにはShift_JISでアクセスする必要があります。


第二の問題として、URLに使用する文字コードの問題があります。
ブラウザのアドレス欄に直接URLを入力した場合は、現在のほとんどのブラウザでUTF-8が使われますが、
Windows版のIEはUTF-8を使ったり(デフォルト)、OSの文字コード(日本語WindowsではShift_JIS)を使うこともできます。

<a href="日本語.zip">としてアクセスする場合、
そのページがShift_JISで書かれていれば、URLはShift_JISとなる可能性もありますし、
ブラウザによってはUTF-8に変換する可能性もあります。
(ただしUTF-8でアクセスできるかどうかは第三の問題が影響します)


第三に、ウェブサーバーがURLに含まれるパスやファイル名の文字コードを、OSで使用している文字コードに変換するかどうかの問題があります。
Apacheは変換しませんし、おそらくAnHttpdも変換しないと思います。
IISはURLに使われているUTF-8 -> OSの文字コード、またはEUC-JPの変換のみするかもしれません。
ただし、Shift_JISでアクセスするとさらに変換しようとしてFileNotFoundとなる可能性もありますが、この辺の挙動はよくわかりません。


「日本語.zip」をUTF-8で記述してURLエンコードした以下のURLで試してみてください。
<a href="%e6%97%a5%e6%9c%ac%e8%aa%9e.zip">日本語名ファイルのダウンロード</a>
これにより第二の問題を解消し、必ずUTF-8でアクセスするようになります。

サーバーがApacheでファイル名の文字コードがUTF-8であるか、
サーバーがIISでファイル名の文字コードがShift_JISの場合、
(4)の方法でダウンロードできないブラウザでもダウンロードできるようになる可能性が高くなります。



CMSなどを使ってUTF-8のファイル名で保存すると、
HTTP経由ではアクセスできるようになるかもしれませんが、
Windowsエクスプローラーで見ると文字化けします。

日本語のファイル名はさけるべきと言うのには同意しますが、
日本語ドメインしかり、文字コードの問題をクリアできるなら、大きな問題にはならないと思います。
    • good
    • 0
この回答へのお礼

遅くなりましたがありがとうございました。

お礼日時:2008/12/08 10:16

テストも良いですが、基本的な考え方として、ファイル名の日本語は避けるべきです。

No1 さんのように自分で、webサーバを何とか出来る環境があれば、何とか出来るかも知れませんが、一般に公開するサーバで有れば基本避けるべきだと思います。

社内だけの環境で有れば何とかする必要はあると思いますが・・・。
    • good
    • 0

MacOSX 10.4.11です。



Firefoxは最後以外オッケーですが、Safari、iCab、シイラ、Opera
は全部ダメです。

ちなみにウチには資料配布用のwebサーバがいて、やたらと日本語名
のついたファイルを放り込んでますが、上記のブラウザ全部で全く
問題なく日本語ファイル名のままダウンロードできてます。Windows
のIEでも問題ありません。Apacheの既定の文字コードを、ファイル
システムに合わせてutf-8にしてやったらウマくいったんですよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!