日期:2014-05-17  浏览次数:20770 次

老生常谈,仍然是乱码问题
1、谷歌浏览器、火狐浏览器无问题,但是IE浏览器有问题

2、这是个搜索功能,开始我是用form表单传中文进后台,然后后台生成分页标签带参数,URL?keyword=keyword这种

用表单传第一次前台出来数据是没问题的,但是第2次点击(也就是点击分页按钮),就出现乱码(如情况1)。

跟踪了下,貌似这种乱码还是UTF-8格式,奇怪。如下图


本人tomcat已改成utf-8编码,web.xml已加UTF-8过滤器,eclipse已设置各种文件为utf-8,架构为SSH


请问此问题该如何解决,先多谢各位哥哥了~
------解决方案--------------------
改成new String(request.getParamter("keyword").getBytes("ISO-8859-1"),"UTF-8");
------解决方案--------------------
将tomcat编码改为utf-8,那就不需要将得到的数据进行解码,编码了
------解决方案--------------------
个人感觉是你第二次URL?keyword=keyword,这里的问题。
第二次提交的时候keyword作为参数提交,估计其编码并不是UTF-8,最好是encodeI下。
------解决方案--------------------
引用:
改成new String(request.getParamter("keyword").getBytes("ISO-8859-1"),"UTF-8");

字符编码集写错!
正确的字符集编码名称是iso8859-1

------解决方案--------------------
你用的是  ssh为什么有乱码的问题,要是页面传过来的值,我建议页面的有用标签用struts标签,这个问题struts都帮你解决了。出现乱码估计是你的页面又没用到struts标签,,,改一下把,,,
------解决方案--------------------
最暴力的解决方式,直接在tomcat的service.xml里面配置URIEncoding="utf-8"就可以了。不过一般不怎么建议这样做,因为以后如果换了字符编码的话,又需要去换。
------解决方案--------------------
  解决了?
------解决方案--------------------
第一次Form提交用了post,第二次翻页用了get,是不是这个导致的乱码?
------解决方案--------------------
引用:
Quote: 引用:

改成new String(request.getParamter("keyword").getBytes("ISO-8859-1"),"UTF-8");

字符编码集写错!
正确的字符集编码名称是iso8859-1

------解决方案--------------------
明显最初获取字符的编码是错的嘛!
------解决方案--------------------
改成new String(request.getParamter("keyword").getBytes("ISO-8859-1"),"UTF-8");
------解决方案--------------------
前台页面的编码转换,你重新弄下,这本就是最初的编码有问题,IE和chrome、firFox内核本就不一样,你java在怎么转都是乱码,给你建议还是看下最初的是什么编码,在转
------解决方案--------------------
问题还没解决吗?把web.xml中的过滤器去掉,一般转码只要转一次!这样的状况还真没遇见过!