万恶的中文乱码问题ajax提交、单个文件下载(文件名)和打包下载压缩包中文件文件名乱码...

今天一下午都在于乱码对抗:just 记录一下 方便自己以备后用。

首先是ajax方式上传采用的get请求方式,尝试了下面两种解决方案:

1、出现乱码 修改tomcat配置文件 设置 <Connector connectionTimeout="20000" port="8899" protocol="HTTP/1.1" redirectPort="8443" URIEncoding ="UTF-8"/>
这种方法需要修改中间件,可能会对其他应用有影响,同时服务器可能是其他中间件

2、采用encodeURI方法
js代码中 var queryString = $('#tName').val();queryString = encodeURI(queryString);queryString = encodeURI(queryString);var str = '?tName=' + queryString+ '&tUrl=' + $('#tUrl').val();这里要encodeURI两次

java代码中 tName= URLDecoder.decode(tName,"UTF-8");//解决中文乱码问题
据说这是万能的,这回我可要记住了。

3、就是spring的字符集过滤器 居然不起作用
<filter>
<filter-name>Spring character encoding filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


其次是系统中用到了文件下载(Struts2),有两种乱码的情况,

1、单个文件下载,文件名字出现乱码,这个问题碰到过,通过
fileName = new String(fileName.getBytes("GBK"), "ISO-8859-1");// 解决中文文件名乱码问题
解决,但是今天有点晕,居然一直在纠结inputStream...浪费了好多时间

2、多文件下载,压缩包中含有中文名称文件名都是乱码,采用的是ZipOutputStream打包,这通过
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(f));
out.setEncoding("gbk");// 解決压缩包乱码
就可以简单解决。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值