同样的程序,同样的数据,使用encodeURI编码到服务器端,两个机器一个正常一个是乱码,请问怎么回事?js:
xmlHttp.open("GET,"/datagrid_response?op=review&qfld=" + qfld + "&qtype=" + qtype + "&qvalue=" + encodeURI(qvalue),true);
xmlHttp.onreadystatechange = cb_datagrid;
xmlHttp.send("");servlet:
response.setContentType("text/xml;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
......
String strQueryValue = request.getParameter("qvalue");在本机上测试通过,正常解码,在另一台无开发环境机器上部署,确得到乱码send前encodeURI(qvalue)的值还都是相同的,但在servlet中就不同了

解决方案 »

  1.   

    网上查了查好像是tomcat本身的问题,tomcat对get和post的处理不一样,如果换成jboss或post方式就不会有问题了,谁能给解释解释原因?
      

  2.   

    首先,设置页面的字符集,其次,在servlet中设置字符集
      

  3.   

    在tomcat中设置server.xml的字符集为utf-8。因为tomcat默认是gbk的。
      

  4.   

    查到问题了,是Tomcat本身对GET和POST提交方式处理不同的原因造成的,换成POST就好了。据说用其他的应用服务器也不会有这个问题,不过还没试。