文件下载中文件名乱码的解决方法
2011-06-27 15:23
369 查看
在处理文件下载时候,根据浏览器不同,对文件名的处理稍有差别。
比如日语文件名的时候的处理函数。
public static String toAttachmentFileString(HttpServletRequest request, String fileName) throws Exception {
String userAgent = request.getHeader("User-Agent");
String retValue = null;
// IE
if (userAgent != null && userAgent.indexOf("MSIE") != -1) {
retValue = new String(fileName.getBytes("Windows-31J"), "iso-8859-1");
} else {
//Firefox,Chrome
retValue = MimeUtility.encodeWord(fileName, "Windows-31J", "B");
}
return retValue;
}
需要注意的是chrome的时候,fileName必须是完整的文件名
。而不是文件名的中需要处理的那一部分。
比如文件名为download_下载_201106.csv,如果只处理的 下载 这两个字,然后做成完整文件名的话,下载的时候还是有问题的。
再有一个地方,tomcat5.5以后,GET的时候日文,中文的参数会是乱码。需在server.xml中设置一下参数。
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" useBodyEncodingForURI="true"
redirectPort="8443"/>
参考官方网站:
HTTP:http://tomcat.apache.org/tomcat-6.0-doc/config/http.html
AJP:http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html
比如日语文件名的时候的处理函数。
public static String toAttachmentFileString(HttpServletRequest request, String fileName) throws Exception {
String userAgent = request.getHeader("User-Agent");
String retValue = null;
// IE
if (userAgent != null && userAgent.indexOf("MSIE") != -1) {
retValue = new String(fileName.getBytes("Windows-31J"), "iso-8859-1");
} else {
//Firefox,Chrome
retValue = MimeUtility.encodeWord(fileName, "Windows-31J", "B");
}
return retValue;
}
需要注意的是chrome的时候,fileName必须是完整的文件名
。而不是文件名的中需要处理的那一部分。
比如文件名为download_下载_201106.csv,如果只处理的 下载 这两个字,然后做成完整文件名的话,下载的时候还是有问题的。
再有一个地方,tomcat5.5以后,GET的时候日文,中文的参数会是乱码。需在server.xml中设置一下参数。
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" useBodyEncodingForURI="true"
redirectPort="8443"/>
参考官方网站:
HTTP:http://tomcat.apache.org/tomcat-6.0-doc/config/http.html
AJP:http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html
相关文章推荐
- 下载文件时文件名为乱码解决方法
- ASP.NET下载文件的中文文件名乱码的解决方法
- Java 下载文件(如Excel)文件名中文乱码或缺失解决方法
- javaweb网站下载文件中文文件名乱码解决方法
- 解决下载文件等文件名为中文,乱码的方法。
- php做下载文件的实现代码及文件名中乱码解决方法
- 下载数据库文件时会出现中文文件名乱码,解决方法
- 浏览器文件导出、下载(文件名)乱码解决方法
- ie11下下载文件,文件名乱码的解决方法
- php做下载文件的实现代码及文件名中乱码解决方法
- 解决文件下载在火狐浏览器出现中文文件名乱码的方法
- Response下载文件时,火狐浏览器文件名乱码问题解决方法
- 文件下载(下载文件名乱码解决方法)
- 解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题
- 解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题
- 解决文件下载时文件名出现乱码的问题
- thinkphp使用http::download下载word或者ppt文件乱码问题的解决方法
- java文件下载的中文文件名乱码问题的解决
- 解决火狐浏览器下载文件文件名乱码的问题