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

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

在下载时,经常通过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");  即可。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值