我已经设了过滤器了,这是我的web.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>    <context-param>
        <param-name>configFile</param-name>
        <param-value>/oneks.properties</param-value>
    </context-param> <context-param>
<param-name>uploadFilePath</param-name>
<param-value>pages/upload/</param-value>
</context-param>
<context-param>
<param-name>securityConfigPath</param-name>
<param-value>WEB-INF/security/acl-config.xml</param-value>
</context-param>
<context-param>
<param-name>indexPath</param-name>
<param-value>WEB-INF/index/</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring/*.xml</param-value>
</context-param>
<context-param>    
        <param-name>extremecomponentsPreferencesLocation</param-name> 
        <param-value>/extremetable.properties</param-value>  
    </context-param>    
    <!--由Sprng载入的Log4j配置文件位置-->
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>/WEB-INF/log4j.properties</param-value>
    </context-param>
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.king.framework.web.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter>
<filter-name>Acl Filter</filter-name>
<filter-class>org.king.security.web.filter.AclFilter</filter-class>
</filter>
<filter>
<filter-name>Compression Filter</filter-name>
<filter-class>org.king.framework.web.filter.compression.CompressionFilter</filter-class>
<init-param>
<param-name>compressionThreshold</param-name>
<param-value>10</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
</filter>
<filter>
        <filter-name>eXtremeExport</filter-name>
        <filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class>
    </filter>
    
<filter>
        <filter-name>hibernateFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    </filter>

<filter>
        <filter-name>logoutFilter</filter-name>
        <filter-class>org.king.security.web.filter.LogoutFilter</filter-class>
    </filter>
    <filter>
        <filter-name>verifyFilter</filter-name>
        <filter-class>org.king.security.web.filter.VerifyFilter</filter-class>
    </filter>
    <filter>
        <filter-name>localVerifyFilter</filter-name>
        <filter-class>org.king.security.web.filter.LocalVerifyFilter</filter-class>
    </filter>
 
  <filter-mapping>
<filter-name>logoutFilter</filter-name>
<url-pattern>*.logout</url-pattern>
</filter-mapping>
  <filter-mapping>
<filter-name>verifyFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>localVerifyFilter</filter-name>
<url-pattern>*.aspx</url-pattern>
</filter-mapping>
 
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Acl Filter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Compression Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>     <filter-mapping>
        <filter-name>hibernateFilter</filter-name>
        <url-pattern>*.do</url-pattern>
    </filter-mapping>    <filter-mapping>
        <filter-name>hibernateFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
  <filter-mapping>
        <filter-name>eXtremeExport</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>    
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!--Spring log4j Config loader-->
    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>


<listener>
<listener-class>org.king.security.web.listener.InitListener</listener-class>
</listener>
<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts/struts-config.xml
</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>NoSuchUser</servlet-name>
<servlet-class>org.king.security.web.servlet.NoSuchUser</servlet-class>

</servlet>

<servlet>
<servlet-name>webGui-init</servlet-name>
<servlet-class>com.pow2.webgui.resources.WebGuiInit</servlet-class>
<init-param>
<param-name>webGui.prototypes.properties</param-name>
<param-value>/WEB-INF/webgui/wgPrototypes.properties</param-value>
</init-param>
<init-param>
<param-name>webGui.velocity.properties</param-name>
<param-value>/WEB-INF/webgui/velocity.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>DictionaryInit</servlet-name>
<servlet-class>org.king.classmanage.web.servlet.DictionaryInitServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param> </servlet>
<servlet>
<servlet-name>CheckCodeImage</servlet-name>
<servlet-class>org.king.security.web.servlet.CheckCodeImage</servlet-class>
</servlet>

<!-- dwr Servlet -->
<servlet>
  <servlet-name>dwr-invoker</servlet-name>
  <display-name>DWR Servlet</display-name>
  <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
  <init-param>
     <param-name>debug</param-name>
     <param-value>true</param-value>
  </init-param>
</servlet>

<!-- dwr Servlet Mapping -->
<servlet-mapping>
  <servlet-name>dwr-invoker</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
</servlet-mapping> <!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>NoSuchUser</servlet-name>
<url-pattern>/NoSuchUser</url-pattern>
</servlet-mapping> <!-- CheckCode Image Servlet Mapping -->
<servlet-mapping>
<servlet-name>CheckCodeImage</servlet-name>
<url-pattern>/CheckCodeImage</url-pattern>
</servlet-mapping> <session-config>
<session-timeout>30</session-timeout>
</session-config> <!-- The Usual Welcome File List -->
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

   <!--Error Page-->
     <error-page>
        <error-code>500</error-code>
        <location>/error.jsp</location>
    </error-page>
    <error-page>
        <error-code>400</error-code>
        <location>/index.jsp</location>
    </error-page>
    <error-page>
        <error-code>403</error-code>
        <location>/403.jsp</location>
    </error-page>
    <error-page>
        <error-code>404</error-code>
        <location>/404.jsp</location>
    </error-page>
    

<resource-ref>
    <res-ref-name>jdbc/freshmen</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
  </resource-ref></web-app>以前都是好的,最近突然客户说出现这个问题,看了filter也没有问题呀,不知道为什么就变乱码了,jsp也是utf-8的编码,这是jsp的头<%@page pageEncoding="UTF-8"%>
<%@ include file="../tiles/include.jsp"%>为什么用filter后还是会乱码啊?

解决方案 »

  1.   

    一个帖子写不下
    这是filterpublic class EncodingFilter
        implements Filter
    {    public EncodingFilter()
        {
            filterConfig = null;
            encoding = null;
            ignore = true;
        }    public final void destroy()
        {
            encoding = null;
            filterConfig = null;
        }    public final void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException
        {
            if(ignore || request.getCharacterEncoding() == null)
            {            String encoding1 = selectEncoding(request);
                if(encoding1 != null){
                 request.setCharacterEncoding(encoding1);
                }
            }
            chain.doFilter(request, response);
        }    public final void init(FilterConfig arg0)
            throws ServletException
        {
            filterConfig = arg0;
            encoding = filterConfig.getInitParameter("encoding");
            String value = filterConfig.getInitParameter("ignore");
            if(value == null)
                ignore = true;
            else
            if(value.equalsIgnoreCase("true"))
                ignore = true;
            else
            if(value.equalsIgnoreCase("yes"))
                ignore = true;
            else
                ignore = false;
        }    protected final String selectEncoding(ServletRequest request)
        {
            return encoding;
        }    private FilterConfig filterConfig;
        private String encoding;
        private boolean ignore;
    }
      

  2.   

    页面字符集,提交方式,tomcat字符集检查了
      

  3.   

    jsp编码<%@page pageEncoding="UTF-8"%>form是用post提交的,tomcat server.xml里没设字符集,我设了也没用
    刚才发现form上加了enctype="multipart/form-data"就可以正常提交中文了
    但之前都不用加的,只能这样的话,要加好几十张页面了
      

  4.   

    action 使用 post
      

  5.   

    action 使用 post
      

  6.   

    结啥啊..你自己都不看我回帖,我就是用post的呀
      

  7.   

    啊,不好意思,没看清楚现在我想确认一下enctype="multipart/form-data" 有这个的能 正常显示没有,就不能是不是这个状况?
      

  8.   


    恩,就是这情况,比较奇怪,我又没有上传文件,只是提交form表单而已,以前都不用加的呀,现在加的话,那所有的页面都要重新加一次了