本次测试还是参考网上的帖子,总结如下:
首先 明确一点: 字节流<------>字符流 的相互转换 ,例如:
[b]以下适合POST 提交[/b]以上例子说明 两点:
1、字节流到字符流的 正向和反向 的编码格式要一致,才能正确转换,否则只会得到乱码。2、s1 由 不一致的 编码格式 iso-8859-1 转换成乱码后,可以再次还原为字节流,最后使用一致的编码格式得到正确的中文
好,明白这一点,第一我们首先看 request ,从浏览器到服务器的请求过程,form表单的提交信息需要 经过编码(什么编码??想一想,我们如何知道) 转为字节流,而后(这里讲tomcat)服务器会 逆向把字节流 通过默认编码iso-8859-1来还原为字符流,此时我们使用request.getParameter("XX")得到的东东是正确?还是乱码? 关键问题是:form表单提交时转换字节流时的 [b]编码格式(A)[/b] 和 tomcat 把字节流转回字符流的 [b]编码格式(B)[/b] 一致吗?
[b]编码格式(B)[/b]=“iso-8859-1”
[b]编码格式(A)[/b]我们从下面图中找:图示为简体中文(GB2312)
[img]http://dl.iteye.com/upload/picture/pic/60631/56e58bbd-0ae6-3415-be86-3dc03f4382bf.png[/img]
结果乱码。
简单的解决方法:
或者
OK! 问题是解决了,好点的办法:使用过滤器(如何实现?百度就可以)所有的请求都过滤。一次性了事。
待续...
参考作者:[url]http://hi.baidu.com/smiky/blog/item/7131d71b342688dfac6e756f.html[/url]
[url]http://china.manufacturer.com/article/study_for_character_encoding_java.htm[/url]
分享:[url]http://www.iteye.com/topic/640940[/url]
分享:[url]http://sailor90.iteye.com/blog/627514[/url]
首先 明确一点: 字节流<------>字符流 的相互转换 ,例如:
String s = "中文";
byte[] bs2 = s.getBytes("utf-8");
String s1 = new String(bs2,"iso-8859-1");
String s2 = new String(bs2,"utf-8");
String s3 = new String(s1.getBytes("iso-8859-1"),"utf-8");
System.out.println(s1+"\n"+s2+"\n"+s3);
输出结果:
??????
中文
中文
[b]以下适合POST 提交[/b]以上例子说明 两点:
1、字节流到字符流的 正向和反向 的编码格式要一致,才能正确转换,否则只会得到乱码。2、s1 由 不一致的 编码格式 iso-8859-1 转换成乱码后,可以再次还原为字节流,最后使用一致的编码格式得到正确的中文
好,明白这一点,第一我们首先看 request ,从浏览器到服务器的请求过程,form表单的提交信息需要 经过编码(什么编码??想一想,我们如何知道) 转为字节流,而后(这里讲tomcat)服务器会 逆向把字节流 通过默认编码iso-8859-1来还原为字符流,此时我们使用request.getParameter("XX")得到的东东是正确?还是乱码? 关键问题是:form表单提交时转换字节流时的 [b]编码格式(A)[/b] 和 tomcat 把字节流转回字符流的 [b]编码格式(B)[/b] 一致吗?
[b]编码格式(B)[/b]=“iso-8859-1”
[b]编码格式(A)[/b]我们从下面图中找:图示为简体中文(GB2312)
[img]http://dl.iteye.com/upload/picture/pic/60631/56e58bbd-0ae6-3415-be86-3dc03f4382bf.png[/img]
结果乱码。
简单的解决方法:
new String(request.getParameter("XX").getBytes("ISO-8859-1"),"GB2312")//每个参数都要这样做,代码重复
或者
request.setCharacterEncoding("GB2312");
request.getParameter("XX")//至少每个获取参数的地方需要写一次
OK! 问题是解决了,好点的办法:使用过滤器(如何实现?百度就可以)所有的请求都过滤。一次性了事。
待续...
参考作者:[url]http://hi.baidu.com/smiky/blog/item/7131d71b342688dfac6e756f.html[/url]
[url]http://china.manufacturer.com/article/study_for_character_encoding_java.htm[/url]
分享:[url]http://www.iteye.com/topic/640940[/url]
分享:[url]http://sailor90.iteye.com/blog/627514[/url]