出现乱码有很多种原因:
1页面编码格式是否统一
2如果统一编码以后,你在后台接到的值是不是乱码。如果是乱码就说明传过来的时候就是乱码,如果传到后台不是乱码,存到SQL里出现乱码,那就要看看你的SQL的编码格式了

解决方案 »

  1.   

    那你就用servlet
    在servlet中加入 response.setCharacterEncoding("gb2312");
    request.setCharacterEncoding("gb2312")
    就可以了。。
      

  2.   

    我自己写的时候过滤器都比较简单省略式的,如类
    package 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 CharFilter implements Filter { public void destroy() {
    } public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    chain.doFilter(request, response);
    } public void init(FilterConfig arg0) throws ServletException {
    }}web.xml 中配置:
             <filter>
    <filter-name>charfilter</filter-name>
    <filter-class>filter.CharFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>charfilter</filter-name>
    <url-pattern>*.do</url-pattern>//如果是servlet就换成servlet.
    </filter-mapping>
    <filter-mapping>
    <filter-name>charfilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
      

  3.   

    我就是没用Servlet
    直接用的JSP页面把数据存入到SQL2000O数据库中的
    用的都是统一的gb2312
    从数据库中查询的数据是对的
      

  4.   


    这个我写好的了
    就是不知道怎么用
    是在页面上包含这个filter还是怎么用啊?
    谢谢了
      

  5.   

    在web.xml里面加入过滤器,对所有的.jsp页面进行过滤,就好像servlet请求一样加入吧,我朋友弄过,我自己没有亲手弄过,不知道说得对不对呢……
      

  6.   

    实在不行就用
    String strGBK=new String(数据库数据取出的str.getBytes("ISO-8859-1"),"GBK")
    把取出的字符串重新编码
      

  7.   

    检查下是不是自己SQL2000有问题.
    以前遇到一样的问题,后来是数据库出的问题.
    以上的办法基本都是处理乱码的,如果都没有用.那就没什么了.
      

  8.   

    过滤器配置  
    <filter>
     <filter-name>encoding</filter-name>
     <filter-class>
      filter.FilterEncoding
     </filter-class>
     <init-param>
      <param-name>encoding</param-name>
      <param-value>gbk</param-value>
     </init-param>
    </filter>package 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 FilterEncoding implements Filter 

     protected String encoding;          // 接收字符编码
     protected boolean ignore;            // 是否忽略大小写
     protected FilterConfig filterConfig; // 初始化配置 public void init(FilterConfig filterConfig) throws ServletException 
     {
      // 从web.xml文件中读取encoding的值
      encoding = filterConfig.getInitParameter("encoding"); 
      // 从web.xml文件中读取ignore的值
      String value = filterConfig.getInitParameter("ignore"); 
      // 以下三种情况均为忽略大小写
      if(value == null) 
      { 
       ignore = true; 
      }
      else if(value.equalsIgnoreCase("yes")) 
      { 
       ignore = true; 
      } 
      else if(value.equalsIgnoreCase("true")) 
      { 
       ignore = true; 
      } 
     } 
     // doFilter方法
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException 
     {
      if(ignore || request.getCharacterEncoding() == null) 
      {
       // 如果为空先从web.xml中得到
       String encoding = selectEncoding(request); 
       if(encoding != null) 
       {
        // 设置字符集编码
        request.setCharacterEncoding(encoding); 
       }
      }
      // 继续执行
      chain.doFilter(request, response); 
     } 
     // 得到字符编码
     private String selectEncoding(ServletRequest request) 
     { 
      return encoding; 
     } 
     public void destroy() 
     { 
      
     } 
    }
    如果是url的get提交参数带中文的 
    可以改下面这个文件,加入一个URIEncoding="GBK" 
    X:\Tomcat 5.5\conf\Server.xml 
      <Connector 
            port="8080" 
            redirectPort="8443" 
            minSpareThreads="25" 
            connectionTimeout="30" 
            maxThreads="150" 
            maxSpareThreads="75" 
    URIEncoding="GBK"> jsp头文件<%@ page contentType="text/html;charset=gbk"%>   //此处的charset的值要和web.xml里的  <param-value></param-value>值一样