
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
下面昆明it培训小编说说解决java编程文乱码绝招,这对java培训班学习的小伙伴们有很大的帮助,先来看Ajax传值。
第1:Ajax传值
这个比较麻烦,据测试,不同的浏览器有不同的对中文编码,怎么办呢?
Java培训小编可以采用js的encodeURI()进行统一的编码,然后在后台进行统一的解码
对应的Java解码代码:
str= java.NET.URLDecoder.decode(str, "UTF-8");
当然,因为他是utf-8编码,所以也可以采用第一种get post介绍的方法解码(据测试,用 String(req.getParameter("str").toString().getBytes("utf-8"), "GB2312")解码js的encodeURI()时,会出现乱码,所以还是老老实实的使用java.Net.URLDecoder.decode(str, "UTF-8");)
不好意思,达内培训小编刚刚查了资料,上面讲的Get方式有错:
Tomcat对于GET请求并不会考虑使用request.setCharacterEncoding方法设置的编码,而会永远使用iso-8859-1编码,而这位朋友使用的正好是GET请求,因此,tomcat将会使用iso-8859-1将提交的字节转换成字符串。
所以,对于使用get方式传值的时候,统一使用String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GBK");当然,前提是你服务器是tomcat
第2:java web下载文件名乱码问题
第1种: 设置
response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
it培训机构小编这里将文件名编码成UTF-8的格式,就不会出现URL出错了。IE6下注意中文文字不能超过超过17个。
第二种:设置
response.setHeader( "Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" ) );
将中文名编码为ISO8859-1的方式。不过该编码只支持简体中文.
按照上诉方式,可以综合一下两种方式解决绝大部分中文问题。
fileName = URLEncoder.encode(fileNameSrc,"UTF-8");
if(fileName.length()>150)//解决IE 6.0 bug {
fileName=new String(fileNameSrc.getBytes("GBK"),"ISO-8859-1");
response.setHeader( "Content-Disposition", "attachment;filename=" + fileName);
}关于解决java编程文乱码解决办法,请点击昆明达内官网:http://km.tedu.cn