今天在做导出操作时发现保存excel名称为乱码,经查找发现时jsp页面编码有问题:
jsp导出页面部分代码:
name= user.getName() + "工资单.xls";
response.setHeader("Content-Disposition", "filename=" + new String(name.getBytes("gbk"),"ISO-8859-1"));
修改为以下代码则正常:
name= user.getName() + new String(("工资单.xls").getBytes("ISO-8859-1"),"gbk");
response.setHeader("Content-Disposition", "filename=" + new String(name.getBytes("gbk"),"ISO-8859-1"));
new String(str.getBytes(“ISO-8859-1″),”GBK”)的原理:
当字符在网络中传递时,不管对于这个字符是怎么编码的,java都认为它是iso8859编码,因此按照iso8859到unicode的转换规则,变成java保存字符的unicode编码,此时如果直接显示该字符时,将出现乱码,因为它本身并不是iso8859的编码,而是GBK方式,对应unicode码自然也不正确,所以这时需要做的是先将这个字符码可逆的转化为原先的编码值即GBK值,(转化方法就是通过getBytes(ISO-8859-1)得到),然后java才将此GBk值的字符,以gbk到unicode的转化规则保存为java默认方式unicode码。
那么我们可以得到一个编码转换的过程
假设:GBK码(“你”)->URLencode后变成->(%3F%2F)->Tomcat自动替你转一次ISO- 8859-1->得到( 23 43 68 23 42 68 每一个符号表示为ISO-8859-1中的一个编码)->接收页面—>再转一次为ISO-8859-1的Byte数组 [23,43,68,23,42,68]—>用GBK再转为可读的文字—>(%3F%2F”—->转为(“你”)
相关推荐
解决jsp页面乱码,页面信息配置,tomcat配置以及各种信息配置
post的乱码问题 加入******在写在存取第一个参数之前
jsp中常见的乱码 1、JSP页面乱码 2、数据库乱码 3、中文作为参数传递乱码 4、JSP页面乱码加这句
如何解决JSP页面显示乱码问题
很简单就修改好了头疼的jsp页面乱码问题
jsp页面跳转到后台乱码 还需要在html中指定编码格式。 ; charset=gb2312" /> <title>title 解决方法是要在jsp最前面加上一条java语句,设置请求的字符编码。 request.setCharacterEncoding("gb2312"); %>
jsp页面传值中文乱码问题处理.docx
总结了在java web开发中遇到的种种编码问题,使乱码问题逐一清除
概括了所有解决jsp乱码问题的代码!都尝试过了!很好用!
JSP用户提交页面编码,JSP用户提交页面编码
Tomcat环境下JSP中文乱码问题的解决
JSP中文问题解决办法,JSP页面传值,数据库等的中文乱码解决办法
NULL 博文链接:https://prowl.iteye.com/blog/483854
JSP页面上出现中文乱码的几个解决办法 比较好的 一般都能解决问题
下面小编就为大家带来一篇请求转发jsp页面乱码问题的快速解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
JSP乱码解决方案大家可以看看,可以有利于大家,在JSP页面乱码问题,扥到更好的解决方案
本方案解决了jsp常见的乱码问题 下载后查看详细内容
Struts2资源文件在jsp页面中显示乱码解决
5种JSP页面显示为乱码的解决方法
jsp页面显示中文乱码解决.rar