我的struts2与前端的jsp的编码都设置成gbk的了,并且在web.xml中也设置了filter过滤,我也知道ajax的提交方式默认是utf-8,有没有好的办法,比如配置filter等,让它不再出现乱码呢?

解决方案 »

  1.   

    你的过滤器设置编码没有用的.! Struts2的核心过滤器都给你整成utf-8了(默认的),而不是ajax的提交方式默认是utf-8.
    当然解决办法还是有滴. 在你的struts.xml文件中配置
    <constant name="struts.i18n.encoding" value="GBK">
    默认是UTF-8的
      

  2.   

    ajax中出现中文参数要这么用encodeURIComponent(“ 中国 ”) 就行了
      

  3.   

    服务器端这么用  java.net.URLDecoder.decode(v , "UTF-8");
      

  4.   

    我原来的网页都是用的gbk的编码方式,不想改了,二楼的izard999说的那种方式,我以前就是这样配置的,不起作用,其它方法我再试试
      

  5.   

    你的ajax提交方式是什么啊,是get还是post啊,要是get方式在应用服务器中配置URIEncoding="GBK",要是post方式加了过滤器应该不会出现乱码了。
      

  6.   

    不起作用吗.? 我以前做的起作用捏.!
    你在web.xml里面配置下那个常量看看,就是在你Struts2过滤器里面设置init-param
      

  7.   

    这个.. 如果是get请求记得配URIEncoding
      

  8.   

    页面传参表现实行  xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
      xmlHttp.send("id=" + encodeURI(id) +  
      "&question=" + encodeURI(qq));   
    就okhttp://topic.csdn.net/u/20110221/16/2530f003-4888-4f0e-8e9b-53805a4b2d24.html?seed=1843951749&r=71738281#r_71738281