有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java CharacterEncodingFilter在Spring MVC 3.0中不翻译unicode文本

我将CharacterEncodingFilter设置为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>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>encodingFilter</filter-name>  
 <url-pattern>/*</url-pattern>  
</filter-mapping> 

在我的JSP中:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" isELIgnored="false" %>

这是:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

但是,例如,从JSP表单传回控制器,然后又传回JSP,变成:T%E

我在谷歌上搜索了几个小时,但找不到这个问题的答案。任何帮助都将不胜感激


共 (2) 个答案

  1. # 1 楼答案

    如果您使用的是Tomcat,那么您可能没有在server.xml中设置URIEncoding。如果不将其设置为UTF-8,它将无法工作。一定要保留CharacterEncodingFilter。然而,这里有一个简明的checklist要遵循。它肯定会指引你实现这一目标

  2. # 2 楼答案

    如果CharacterEncodingFilter或您实现的过滤器位于web.xml的顶部,请确保xml中CharacterEncodingFilter<filter-mapping>元素出现在其他过滤器的<filter-mapping>元素之前

    我花了很长时间才弄明白。可能对某人有用