日本語ファイル名のダウンロード

| | コメント(0) | トラックバック(0)

WebObjects(に限らないけれど)日本語ファイル名のダウンロードはちょっと難しい。文字化けをする。
色々調べて、IE や Firefox ではなんとか解決したのですが、Safari がなんともいけません。
もう少し調べてみよう。
という事で、ここまでのおさらいを....

まず IE ですが Windows 用の場合(きっと6以降かな?)は
encodedFileName = java.net.URLEncoder.encode( new String((filename).getBytes("UTF-8"),"SJIS") );
として、
aResponse.setHeader("attachment; filename=" + "\"" + encodedFileName + "\"","Content-Disposition");
で、なんとかいっているようです。(長い名前は駄目かもしれませんが、テストはしていません。)

Mac 用の IE(テストしたのは OS X 用の IE5.2.3)これの場合は
encodedFileName = new String((filename).getBytes("SJIS"),"ISO-8859-1");
不思議な書き方ですが、なんとなくわかるような気もする。とにかくこういうのを解釈するって事なんですね、きっと。
この方法は Windows 版 IE でもいけていました。

次に、Firefox。(Mac OS X 用 Firefox 1.06でテスト)
encodedFileName = javax.mail.internet.MimeUtility.encodeWord(filename, "ISO-2022-JP", "B");
どうもこれが RFC 2047 というのに従っているらしいのですが、IE や Safari は解釈してくれません。
Opera もこれでいけらしいのですが、テストはしていません。

さて、肝心の Safari。
これが上記のどの方法でもうまくいきません。エンコードした文字列そのままのファイル名で保存しちゃっています。
仕方ないので今のところはダミーのファイル名を返す様にしていますがなんとかしたいなぁ。

以下はお役立ちリンクです。
http://www.wsdeveloper.com/viewtopic.php?t=62
http://support.microsoft.com/default.aspx?scid=kb;ja;436616
http://www.jajakarta.org/kvasir/bbs/technical/112?msg=2#msg703

トラックバック(0)

このブログ記事を参照しているブログ一覧: 日本語ファイル名のダウンロード

このブログ記事に対するトラックバックURL: http://www.tandemsite.com/mt/mt-tb.cgi/370

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、m_hashが2005年7月29日 12:53に書いたブログ記事です。

ひとつ前のブログ記事は「はるちゃんからのお手紙」です。

次のブログ記事は「今日はめしや」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

by WebServant

2008年11月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

My PhotoShare Page

My Flickr Page

www.flickr.com
This is a Flickr badge showing public photos from m_hash. Make your own badge here.

emo


feedmeter

RSS feed meter for http://www.tandemsite.com/blog/m_hash/

Powered by Movable Type 4.2-ja

アイテム

  • photo20081115.jpg
  • photo20081114.jpg
  • mmouse-wireless-keyfeatures.gif
  • photo20081110.jpg
  • caulogo_west.jpg
  • 20081020SAKAGUCHI.jpg
  • stereomaker_icon.gif
  • photo20081011.jpg
  • R0010528.JPG
  • 080930_1211~03.jpg

アーカイブ