解决Http或Https中下载中文文件乱码和无法下载问题

来源:互联网 发布:网站源码加密授权中心 编辑:程序博客网 时间:2024/05/22 08:19

一、解决无法下载中文文件问题

在下载时,经常通过url方式链接到指定文件路径的方式进行下载文件,但是如果文件含有中文时,往往出现http 404 无法找到文件的错误,原因就是文件中包含中文的问题,因此需要tomcat的配置文件中设置编码,如下:

1.HTTPS的端口8443的编码设置

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"  maxThreads="150" keystoreFile="D:\JavaEnvironment\tomcat7\https_info\tomcat.keystore"

keystorePass="huaqin" SSLEnabled="true" scheme="https" secure="true"

clientAuth="false" URIEncoding="utf-8" useBodyEncodingForURI="true" sslProtocol="TLS" />

2.HTTP的端口80端口的编码设置

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"  URIEncoding="utf-8" useBodyEncodingForURI="true" />

总结:关键是添加两个配置项即可:URIEncoding="utf-8" useBodyEncodingForURI="true" 。


二、解决下载时中文名乱码问题

这种问题,一般是通过response的方式来下载文件,因此需要设置response的header:getResponse().setHeader("Content-Disposition", "attachment;filename="+new String(fName.getBytes("gbk"), "iso8859-1")+".xls");  即可。