【问题标题】:Java encoding filename Content-DispositionJava 编码文件名 Content-Disposition
【发布时间】:2013-06-16 12:07:03
【问题描述】:

我有 GWT 应用程序,可以从中下载一些文件。我遇到了编码问题。

这里有一些代码:

String n = "Żółw testuje ąśżźć !#$%~ du";
String tmp = new String();
for(int i = 0; i < n.length(); i++) {
    String t = Character.toString(n.charAt(i));
    if(" =-_]}[{)(&^%$#@!~`,".contains(t))
        tmp +=t;
    else
        tmp += URLEncoder.encode(t, "UTF-8");
}

response.setHeader("Content-Disposition", "attachment; filename=\"" + tmp +"\"");
System.out.println(tmp);

在 Chrome 和 IE 中,文件名是 "Żółw testuje ąśżźć !#$%~ du" 但在 Firefox 中是 "%C5%BB%C3%B3%C5%82w testuje %C4%85%C5%9B%C5% BC%C5%BA%C4%87 !#$%~ du"。我已经使用 Windows-1252、ISO-8859-1、Cp852 和“附件;文件名*=utf-8''”进行了测试,但效果不佳。

有什么建议吗?

【问题讨论】:

  • 为什么投反对票?对我来说似乎是一个完全合理的问题
  • here,不过帖子已经3年了,不知道从那以后情况怎么样了
  • 谢谢 fge,sporaks 的回答非常有帮助。

标签: java firefox gwt encoding content-disposition


【解决方案1】:

请参阅相关规范 -- http://greenbytes.de/tech/webdav/rfc6266.html -- 和 http://greenbytes.de/tech/tc2231/ 的测试用例。

【讨论】:

    猜你喜欢
    • 2020-01-07
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 2010-12-02
    • 2021-12-22
    • 2011-04-20
    • 2021-09-07
    相关资源
    最近更新 更多