我用的struts2。。ajax传递汉字过程中出现了乱码字符编码已经统一过了,都是GB18030编码。试了很多种方法都没有解决问题。。希望大家能够帮帮忙如果不知道的请不要乱回答,谢谢合作了

解决方案 »

  1.   

    代码我也贴上来了
    var data = "article.title="+title+"&article.content="+content+"&comment="+comment+"&reprint="+reprint+
                      "&categoryId="+categoryId+"&status="+status;
                   createXMLHttpRequest();
                   xmlrequest.open("GET","draft_save",false);
                   xmlrequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
                   xmlrequest.onreadystatechange = processResponse;
                   xmlrequest.send(data);
    以上是其中的ajax发送请求代码。。请大家帮帮忙急求。
      

  2.   

    由于是用到了get的请求,最直接的解决方案是修改一下tomcat的server.xml文件,
     <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" URIEncoding="UTF-8"/>
      

  3.   

    enuricode(中文),后台转一下码,就没有乱码了
      

  4.   


    可我全局的编码是GB18030的。。如果这改了,那其它的地方岂不是也要改?数据库的项目的,改了server的是不还要后台转码一次??哪位朋友能跟我说个常用点的方法。。
      

  5.   

    哎呀。我昨天也遇到这种情况。Ajax传输到servlet时中文乱码,找了好些资料终于解决了 。
    var data = "article.title="+encodeURIComponent(title)+"&article.content="+encodeURIComponent(content)+"&comment="+encodeURIComponent(comment)+"&reprint="+encodeURIComponent(reprint)+
                      "&categoryId="+encodeURIComponent(categoryId)+"&status="+encodeURIComponent(status);
                      createXMLHttpRequest();
                      xmlrequest.open("GET","draft_save",false);
                      xmlrequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
                      xmlrequest.onreadystatechange = processResponse;
                      xmlrequest.send(data);如果楼主其他地方没问题的话这样肯定能解决。而不是说什么tomcat的server.xml文件原因。
      

  6.   

    js乱码解决
    encodeURI(newvalue);
    java.net.URLDecoder.decode(preject_name, "utf-8")
      

  7.   

    get是通过url显式的发送到后台,而url传送汉字时,是采用国际统一的iso-8859-1编码进行传送,所以,四楼是正确的。
      

  8.   

    据说AJAX通过两次encodingURI,可以传中文
    然后服务器端 decode一次就可以得到中文了
      

  9.   


    修改这个配置文件不影响你所谓全局的编码,这个是只针对get传参时url的编码,要是不想用utf-8,你可以改成GB18
      

  10.   

    楼主 你在 你ajax 要传递的 参数前面加 上 encodeURIComponent("中文")  100% 正确 呵呵 
      

  11.   

    别想了,AJAX传输使用的是utf-8编码,如果不想转码,就都使用utf-8吧
      

  12.   

    1.Post方式发生ajax的时候中文默认可以采用页面上设置的content-type
    2.get方式发送ajax的时候,传递的参数默认不会采用编码,所以在Tomcat中默认是会采用is0-8859-1来进行编码。解决这样的问题通常可以这么做:
      1)对参数采用encodeURIComponent方法进行编码,如param1=encodeURIComponent(paramValue)
      2) 采用5楼说的,在tomcat配置文件中增加URIEncoding参数。