我的struts2应用程序遇到一个问题。我使用struts2标签编写了下载程序。当下载文件名写的是英文时,我的程序没问题。(例如sample.xls)。但是我将文件名更改为其他语言。(例如.屏幕定义书.xls)然后我的文件名显示不好。看这个
我在每个jsp页面中都使用了
<%@ page contentType="text/html;charset=UTF-8"%>
。那么如何解决这个问题?请分享一些想法。我的环境是Windows7,eclipse juno,tomcat7。
对话框的编码不依赖于jsp页面的内容类型。您的Windows弹出对话框的字符编码需要更改为所需的编码格式(在注册表中或其他方式设置新的编码值)
浏览器调用的对话框正在使用系统的Locale;
然后您需要设置正确的Locale,以便系统能够获取绘制新字符所需的数据。
由于您使用的是 Windows 7:
然后
最后
图片(以及 XP 和 Vista 的说明)取自此处。
此时,您应该能够将Locale重新设置为原始值,并且由于之前操作期间系统上安装了语言包,并且可以正确地看到日文字符。
在 Struts2 结果流响应中使用文件名之前,先对文件名进行 URL 编码,如下所示:
java.net.URLEncoder.encode(youFileNAme, "UTF-8");