解决方案 »

  1.   

    回复3楼的亲···我在JSP页面统一设置为UTF-8的啊,然后设置的过滤器也是UTF8啊···之后在浏览器的页面编码也是设置为UTF8的呢···session里面是直接获取选中行的ID的,根据ID查询的···应该编码都没问题的啊···不知道为何非IE的就是查询不到数据呢···?···
      

  2.   

    http://www.regexlab.com/zh/encoding.htm
      

  3.   

    看看这个页面的JSP代码  显示模糊查询的 还有JS的   我倒是觉得是inner 和inhtml的问题
      

  4.   

    是innerTEXT 和innerHTML的问题
      

  5.   

    回复8楼的亲···话说JSP页面应该是没问题的吧···因为在IE内核的浏览器都可以正常显示的啊···只是非IE内核的浏览器才不行啊···好纠结···
      

  6.   

    把最后传到后台的汉字变为的字符串贴出来看看(火狐或者Chrome下的)
      

  7.   

    这应该是ajax查询吧, 先看看返回值对不对? 也许后面是js不兼容出错了
      

  8.   

    回复12楼的亲···话说我用SQL server profiler工具跟踪所有的查询语句看了,发现在IE查询的时候是没有乱码的,就是用非IE内核的时候就乱码了···如下图所示:
    IE查询界面:
    IE查询语句跟踪:
    火狐查询界面:
    火狐查询语句跟踪:
    应该只是浏览器的编码问题吧···?···但是我在IE和谷歌设置的页面编码都是UTF-8的啊···谷歌一样不行哦···怎么办?
      

  9.   

    回复13楼的亲···我就是用ajax的方式,但是我本来就已经设置为post的发送方式的啊···你看看我的代码:
    function queryOnClick(){ //模糊查询
        
        $.ajax({
    url: "check.action?code=0002",
    type: "POST",
    success: function(data){
    if(data[0].retCode=="000"){
    var Coding=$('#GangWeiCoding').searchbox('getValue');
    var Name=$('#GangWeiName').searchbox('getValue');
    var Type=$('#GangWeiLeiBie').combobox('getText');
     var url1="SelectGangWeiXinXi.action?GangWeiCoding="+Coding+"&GangWeiName="+Name+"&GangWeiLeiBie="+Type;
        $('#GangWeiXinXi').datagrid({
          url:url1
        });   
        }else{
         alert(data[0].retMsg);
        }
    }
    });

    }
    但是为何还是不行呢···?···
      

  10.   

    dataType : "json", //数据类型
      

  11.   

    再回复13楼的亲···话说我用火狐浏览器的时候,从浏览器的页面提取到session,在调试的时候看到获取到的汉字就已经是乱码的了···所以当然是查询不到相关的数据的···问题是要怎么修改才能保证火狐等浏览器的页面传输过去的汉字不会乱码呢···?···
      

  12.   

    回复17楼的亲···我已经测试过了···的确IE内核的浏览器和非IE浏览器传过去的值是不一样的···IE的是正常的,非IE的直接就是乱码的啦···所以要怎么保证从非IE浏览器传过去之后不会乱码呢?
      

  13.   

    ajax提交,查询的汉字编码没有?应该先编码,然后服务器端解码............
      

  14.   

    var B=arguments[0]+".ajax?"+new Date().getTime();
    var S="id=要查询的参数";
    $.post(B,encodeURI(S),function(O){ ... ),JSON);
      

  15.   

    解决乱码的最根本的办法就是转码
    步骤1 修改js
    var Type=$('#GangWeiLeiBie').combobox('getText');
    把这一行改成 var Type=encodeURI(encodeURI($('#GangWeiLeiBie').combobox('getText')));步骤2 修改SelectGangWeiXinXi.action
    添加 import java.net.URLDecoder;
    然后在String GangWeiLeiBie= request.getParameter("GangWeiLeiBie"); 这一行下面添加
    GangWeiLeiBie = URLDecoder.decode(GangWeiLeiBie , "UTF-8");楼主试试吧,相信我
      

  16.   

    回复18楼的亲···我在ajax查询的时候添加了这句话了···但是还是没什么作用哦···在非IE内核的浏览器一样还是乱码呢···好纠结呢···
      

  17.   

    查询条件可以放入一个表单,然后用 data: $('#formId').serialize(),      这样提交  ,另外IE版本真的不乱码?我想应该是有的版本不乱码吧~~~
      

  18.   

    查询用form提交或者ajax 参数用encodeURIComponent转码  后台 new Sring(“XXX”.getBytes("ISO-8859-1),"UTF-8");
      

  19.   

    LZ可以把 url1 用alert的方式显示出来,看看ff和IE里的内容是否一样
      

  20.   

    23楼正解!!!问题终于解决了···不过我每次在session那里获取值的时候都要进行转换么?感觉有点麻烦的说···有没有简单一点的方法,比如像我原来用的过滤器那样直接一个公共文件然后其他的地方直接引用就可以了呢···?···没有的话我只能全部都改一次了···
      

  21.   

    话说这是我第一次在CSDN发帖子,感觉这里的亲们都挺热情的···赞一个!虽然没有找到更简便的方法,不过23楼的亲所说的方法的确可行···我把分都给你好啦···谢啦!