万恶的中文乱码问题ajax提交、单个文件下载(文件名)和打包下载压缩包中文件文件名乱码...
2012-02-13 20:25
253 查看
今天一下午都在于乱码对抗: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");// 解決压缩包乱码
就可以简单解决。
首先是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");// 解決压缩包乱码
就可以简单解决。
相关文章推荐
- 打包下载文件 中文文件名乱码问题的解决
- jsp实现文件下载与中文文件名乱码问题解决
- 如何解决ASP.NET下载时的中文文件名乱码,与TXT文件中存在代码两个问题
- 火狐浏览器下载文件中文乱码,文件名中的空格变加号("+")的问题
- 解决PHP在IE浏览旗下载文件,中文文件名乱码问题
- Ruby on Rails实现文件的下载以及中文文件名乱码问题
- jsp实现文件下载与中文文件名乱码问题解决
- struts2 文件下载文件名中文乱码及变成空格问题
- http下载文件,中文文件名在firefox下乱码问题
- php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
- 文件下载 response.setHeader()下载中文文件名乱码问题 解决办法
- 【转】彻底解决Asp.net文件下载(Response.WriteFile)时文件名的中文乱码和空格异常问题
- Response下载文件,中文文件名乱码问题
- 整理java文件下载(中文乱码、火狐浏览器乱码、空格变+号、文件名包含空格时文件名可能显示不全等问题)
- 文件下载 response.setHeader()下载中文文件名乱码问题 解决办法
- IE浏览器下载文件中文文件名乱码问题解决
- c# web 下载文件(解决中文文件名乱码问题)
- Struts2 文件下载中文文件名乱码问题
- java文件下载的中文文件名乱码问题的解决
- jsp实现文件下载与中文文件名乱码问题解决