0

在我的控制器文件中,我一直必须包含以下代码行,以便外来字符正确显示。有没有更好的办法?除非另有说明,否则如何自动将文本编码为 utf-8?

    request.setCharacterEncoding("UTF-8");

我尝试在我的 server.xml 中添加这些行,但没有任何区别。

<Connector protocol="HTTP/1.1" URIEncoder="UTF-8"
<Connector protocol="AJP/1.3" URIEncoder="UTF-8" 
4

1 回答 1

3

向您的 web.xml 添加一个过滤器,将所有内容转换为 UTF-8。我经常使用 Spring,它提供了一个过滤器来执行此操作:

<filter>
  <filter-name>charEncodingFilter</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
  </init-param>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
  </init-param>
</filter>

<filter-mapping>
  <filter-name>charEncodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

过滤器实际上并没有比您在这里做的更多,只是您不必将它包含在您的控制器中。Struts 可能还会提供这样的过滤器,否则自己编写很容易。

于 2013-05-28T11:06:46.917 回答