在我的控制器文件中,我一直必须包含以下代码行,以便外来字符正确显示。有没有更好的办法?除非另有说明,否则如何自动将文本编码为 utf-8?
request.setCharacterEncoding("UTF-8");
我尝试在我的 server.xml 中添加这些行,但没有任何区别。
<Connector protocol="HTTP/1.1" URIEncoder="UTF-8"
<Connector protocol="AJP/1.3" URIEncoder="UTF-8"
向您的 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 可能还会提供这样的过滤器,否则自己编写很容易。