我刚用struts2.0 在struts.xml中加入<constant name="struts.i18n.encoding" value="GB2312"></constant>后可以解决FORM表单中提交中文参数出现乱码的问题。。
但是不能解决URL传递中文参数(比如hello.action?msg=哈哈之类)出现乱码的问题
希望高手给出解决的方法。小弟在此先谢过了。。
在线等待中。

解决方案 »

  1.   

    应用服务器是什么?Tomcat, weblogic 或其它?
      

  2.   

    修改 tomcat/conf/server.xml
    <Connector acceptCount='100' connectionTimeout='20000' debug='0'
          disableUploadTimeout='true' enableLookups='false'
          maxSpareThreads='75' maxThreads='150' minSpareThreads='25'
          port='8080' redirectPort='8443' URIEncoding='GBK'/>
    加上 URIEncoding='GBK' 即可。
      

  3.   

    恩。行了、。、谢谢楼上的啊。顺便问一下。。GBK和GB2312谁的范围更大。。用哪个最合适呢
      

  4.   

    GBK是对GB2312的扩充, 以容纳GB2312字符集范围以外的Unicode 2.1的统一汉字部分, 并且增加了部分unicode中没有的字符.如果说要用那个合适的话,我觉得还是utf-8更好一点,如果你追求完美的话可以试试utf-8
      

  5.   

    如果换成UTF-8那么Action处理的中文参数成了乱码的问题怎么解决
      

  6.   

    估计还需要更改其它的配置才行,我以前没有试过UTF-8,你可以研究一下:_)
      

  7.   

    我刚刚试过了。。用UTF-8会出现乱码。。但是我也不知道怎么配置。。
    如果用String msg=new String(request.getParameter("msg").getBytes("UTF-8"),"GBK")转化
    就有点麻烦了。。这样要每次处理都要加上这个。。哦。。对了。。你有学习struts2的资料或者什么好的网站没有啊。。
      

  8.   

    http://blog.csdn.net/feng_sundy/archive/2005/11/15/529944.aspx不知道这个网址对你有没有帮助,里面讲乱码问题讲的很详细
      

  9.   

    package com.liuwg.filter; import java.io.IOException; import javax.servlet.Filter; 
    import javax.servlet.FilterChain; 
    import javax.servlet.FilterConfig; 
    import javax.servlet.ServletException; 
    import javax.servlet.ServletRequest; 
    import javax.servlet.ServletResponse; public class EnconfigFilter implements Filter { private String enconfig = null; public EnconfigFilter() { 
    super(); 
    } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { 
    if(enconfig != null) 

    request.setCharacterEncoding(enconfig);//设置编码过滤 
    response.setCharacterEncoding(enconfig);//设置编码过滤 
    filterChain.doFilter(request, response); 

    } public void init(FilterConfig filterConfig) throws ServletException { 
    enconfig = filterConfig.getInitParameter("enconfig");//从web.xml文件中获得配置的属性(在web.xml文件中编码设置) 
    } public void destroy() { 
    enconfig = null; 
    } } 
    web.xml文件中 
    <filter> 
      <description>filter enconfig</description> 
      <display-name>filter enconfig</display-name> 
      <filter-name>enconfigFilter</filter-name> 
      <filter-class>com.liuwg.filter.EnconfigFilter</filter-class> 
      <init-param> 
      <param-name>enconfig</param-name> 
      <param-value>utf-8</param-value> 
      </init-param> 
      </filter> 
      <filter-mapping> 
      <filter-name>enconfigFilter</filter-name> 
      <url-pattern>/*.action</url-pattern> 
      </filter-mapping>