日期:2014-05-17  浏览次数:20735 次

Spring 乱码过滤器的问题 --新手简单问题
我用strus控制action跳转 显示jsp页面提交的信息,提交英文时可以正常显示,提交中文会乱码,所以加入这个过滤器,但是没效果

另外,加上过滤器后是没有效果,也就是说中文还是有乱码,并没有报错,所以很疑惑.另外我的Myeclipse整体环境编码都设置成UTF-8了

Java code


<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>
           org.springframework.web.filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
       <param-name>encoding</param-name>
       <param-value>UTF-8</param-value>
      </init-param>
      <init-param>
       <param-name>forceEncoding</param-name>
       <param-value>true</param-value>
      </init-param>
     </filter>
    <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
    </filter-mapping>





------解决方案--------------------
我也遇到过这个问题,后来直接是在action中设置的编码
------解决方案--------------------
你过滤的对象只是.jsp
你把.action或者.do,关于action的页过滤一下就可以了。

XML code

    <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
    <!-- 添加 -->
    <url-pattern>*.action</url-pattern>
    </filter-mapping>

------解决方案--------------------
我也遇到过这类问题,是数据库引起的.
1。
你的JSP页面有没有指明编码格式。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
2。
在jsp页面设置要显示值,可以试试。
String XXX = new String(request.getParameter("XXX").getBytes("ISO-8859-1"),"utf-8");
------解决方案--------------------
一般来说,你整个工程就用一种编码格式。你把这个改了
<url-pattern>/*</url-pattern>