就是提交前就乱码了.
在struts为了统一对中文进行处理,可以通过过滤器进行统一处理:处理的类为:
package com.chen.action;
import javax.servlet.Filter;
import javax.servlet.*;
import java.io.*;public class SetCharacterEncodingFilter implements Filter {
public void destroy(){}
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException,ServletException{
request.setCharacterEncoding("gb2312");//设置URL的编码
chain.doFilter(request,response);//传给下一个过滤器
}
public void init(FilterConfig filterConfig)throws ServletException{}
}2。然后在web.xml中设置过滤器
<filter>
   <filter-name>Set Character Encoding</filter-name>
   <filter-class>com.chen.action.SetCharacterEncodingFilter</filter-class>//这里一定使用全路径,不然无法找到类会出错
  </filter>
  <filter-mapping>
   <filter-name>Set Character Encoding</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>

解决方案 »

  1.   

    我用了spring自带的过滤器,没有用.
    在web.xml中加了如下内容:
       <filter>
      <filter-name>encodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
      <param-name>encoding</param-name>
      <param-value>gbk</param-value>
      </init-param>
      <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
      </init-param>
      </filter>
      <filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
      </filter-mapping>
    二楼说的"就是提交前就乱码了",我觉得不是,提交到服务器处理时,我把接收过来的信息,输出到控制台,是正常的中文.但存到数据库,数据库里面显示的就是乱码.提交前应该不算乱码吧
    一楼提到的,数据库编码问题,我想过很有可能是这引起的.但我的数据库编码好像是gbk样的.在mysql命令窗口插入中文记录是能正常的.页面编码我也是用gbk
      

  2.   

    过滤器只能处理post方法提交的乱码,楼主用的是默认方法也就是get方法,用过滤器就没用了.
    不知道你服务器用的是什么,如果是tomcat那就在tomcat配制文件的端口号那一行加上charEncoding="gbk"属性就可以了.(好象是这么写的,我以前记过,不过现在资料没在身边.)