[Wicket-ja-user 660] Re: ダウンロードファイル名の文字化け

Back to archive index

Hideyuki TAKEUCHI webma****@chime*****
2012年 4月 18日 (水) 08:20:00 JST


竹内です。

Content-Dispositionヘッダの2バイト文字ファイル名の解釈の仕方は
ブラウザによって違うので非常に悩ましい問題です。また、
URLエンコードして対応した場合ダウンロードはうまくいっても、
AcrobatReaderでブラウザから直接開いたときに化けているということも
あります。

このリンクの先がブラウザごとの対応表が載っていて参考になると思います。
http://0xcc.net/pub/webdb/bk-05.html


経験上一番確実なのはContent-Dispositionヘッダを使わずに
URLに日本語ファイル名を含めてしまうことです。
リソースをmountSharedResouceでマウントしパラメータの最後に
ダミーでファイル名を渡してやります。

http://hogehoge.com/myresouce/id/1/filename/日本語ファイル.pdf
こんな感じです。filenameパラメータはResourceでは使用しません。

ただ、リソース生成時に大量にパラメータを渡さなければならないときには
この方法は使えないので、やはり先ほどのリンクを参考にブラウザで分岐させて
ファイル名をエンコードするしかないと思います。

--
たけうち

(12/04/18 1:24), Shinji Kawaguchi wrote:
> 川口です。
> 私の環境はサーバTomcat、クライアントwindowsなので、以下の対応で、対処し 
> ました。
> 
> String filename = new String("ファイル名.pdf".getBytes("Shift_JIS"), 
> "ISO8859_1");
> 
> ご参考まで。
> 
> 
> 2012年4月18日0:27 藤原高明 <t.bas****@gmail***** 
> <mailto:t.bas****@gmail*****>>:
> 
>     いつもお世話になります。
>     藤原です。
> 
>     wicketでPDFをダウンロードする仕組みを作成していて問題が発生しました。
> 
>     ResourceLinkを使用し、ByteArrayResourceを渡しているのですが、
>     ダウンロードする際にファイル名が文字化けしてしまいます。
>     下記がリンクを宣言している箇所です。
> 
>     lnkFile = new ResourceLink<Void>("LnkFileConfirm",
>     new ByteArrayResource(
>     "application/octet-stream",
>     byteFile,
>     "ファイル名.pdf"
>     )
>     );
> 
>     ByteArrayResourceでファイル名にマルチバイト文字を使用する際には、
>     何か設定が必要なのでしょうか。
> 
>     _______________________________________________
>     Wicket-ja-user mailing list
>     Wicke****@lists*****
>     <mailto:Wicke****@lists*****>
>     http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user
> 
> 
> 
> 
> _______________________________________________
> Wicket-ja-user mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user

-- 
たけうち




Wicket-ja-user メーリングリストの案内
Back to archive index