我们可以导出文件名为UTF8字符的文件吗?

时间:2014-07-29 12:01:10

标签: java jsp servlets utf-8 io

是否可以使用utf8字符导出文件名。我们正在使用Servlet,它能够读取数据并将其导出到文件中,但文件名不包含utf8字符。

文件名应输出为αβγδεζη.cft,但输出为.cft。它用空格替换所有Unicode字符。

以下是截图:

enter image description here

我不知道从哪里开始这个问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

@GPI感谢您的帮助,只要它真的很有帮助。还想分享我开始使用的以下链接。好像,它具有不同浏览器的不同功能。请参阅下面提到的场景:

我在java代码中进行了一些更改,以设置HTTP Content-Disposition标头字段。

String user_agent = request.getHeader("user-agent");
            boolean isInternetExplorer = (user_agent.indexOf("MSIE") > -1);
            if (isInternetExplorer) {
                response.setHeader("Content-disposition", "attachment; filename=\"" + URLEncoder.encode(templateName+".cft", "utf-8") + "\"");
            } else {                 
                response.addHeader("Content-Disposition", "attachment; " +"filename=\"" + MimeUtility.encodeWord(templateName+".cft", "utf-8", "Q") + "\"");
            }

但上述代码仍不适用于Safari 5.1.7浏览器。

以上代码适用于以下浏览器:

  1. Firefox(版本30.0)
  2. Chrome(版本36.0.1985)
  3. IE(版本8.0)
  4. 如果用户访问IE上的页面< 8,其他浏览器也一样。