You need to sign in to do that
Don't have an account?
nabeyaki
ファイル名
VisualforceでCSV出力する際のファイル名ですが、日本語で指定する方法が分かりません。
何かやり方はあるのでしょうか?
試してみたこと
1,VisualforceでfileNameを変数化し、ApexコントローラでfileName='テスト';のように指定する。
→結果、".csv"だけとなってしまいます。
2,Visualforceはファイル名を指定せず、Apexコントローラで
何かやり方はあるのでしょうか?
試してみたこと
1,VisualforceでfileNameを変数化し、ApexコントローラでfileName='テスト';のように指定する。
→結果、".csv"だけとなってしまいます。
<apex:page cache="true" contentType="text/csv;charset=Shift_JIS;#{!fileName}.csv"
2,Visualforceはファイル名を指定せず、Apexコントローラで
Apexpages.currentPage().getHeaders().put('content-disposition', 'attachment; filename=テスト.csv');のように指定する。結果".csv"となってしまいます。
URLENCODEすれば、日本語になりました。
All Answers
URLENCODEすれば、日本語になりました。
chrome-日本語。
firefox-エンコード文字。
IE11-日本語。
となり、ブラウザにより挙動が異なるようです。素直に日本語は使わない方針にするのが良さげです。
勉強になりました。ありがとうございます。
Apexコントローラで以下のようにContent-Dispositionのfilename*を指定することでfirefoxも含めて文字化けしなくなります。 上記のコードでwindows10にてchrome、firefox、edgeで問題なくファイル名が日本語表示されることを確認しています。
これら以外にもfilename*をサポートしているブラウザなら多分問題ないかと思います。
以下はContent-Dispositionのリファレンスです。ご参考ください。
https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Content-Disposition