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

Java 我们可以导出文件名为UTF8字符的文件吗?,java,jsp,servlets,utf-8,io,Java,Jsp,Servlets,Utf 8,Io,是否可以使用utf8字符导出文件名。我们使用的是Servlet,它能够读取数据并将其导出到文件中,但文件名不是utf8字符 文件名应导出为αβγδεζη.cft,但它导出为.cft。它用空格替换所有Unicode字符 以下是截图: 我不知道从哪里开始解决这个问题。非常感谢您的帮助。@GPI非常感谢您的帮助,因为它确实很有帮助。还想分享下面的链接,我从中开始。看起来,它在不同的浏览器中具有不同的功能。请参见下面提到的场景: 我在java代码中做了一些更改,以设置HTTP内容处置头字段 Strin

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

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

以下是截图:


我不知道从哪里开始解决这个问题。非常感谢您的帮助。

@GPI非常感谢您的帮助,因为它确实很有帮助。还想分享下面的链接,我从中开始。看起来,它在不同的浏览器中具有不同的功能。请参见下面提到的场景:

我在java代码中做了一些更改,以设置HTTP内容处置头字段

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浏览器。

上述代码在以下浏览器上运行良好:

  • Firefox(30.0版)
  • Chrome(版本36.0.1985)
  • IE(8.0版)

  • 如果用户访问IE<8上的页面,其他浏览器也是如此。

    请参阅@GPI我发现了一些可以工作的东西,但在safari上仍然不能正常工作。有人能回答为什么safari 5.1.7不支持utf8字符的文件名吗。目前,safari 5.1.7上显示的文件名=-utf-8-Q-=CE=B1=CE=B2=CE=B3=CE=B4=CE=B5=2Ecft-=-1