Tomcat 7 org.apache.catalina.filters.AddDefaultCharsetFilter未使用UTF-8
我有一个Tomcat 7网络应用程序,我的角色集有问题。我的目标是把所有的东西都塞进UTF-8,然后就这么做吧。事实上,我感到惊讶的是,在2014年,并不是所有东西都默认UTF-8 我阅读了文档,并在系统的默认web.xml中取消了对Tomcat 7 org.apache.catalina.filters.AddDefaultCharsetFilter未使用UTF-8,tomcat,servlets,character-encoding,Tomcat,Servlets,Character Encoding,我有一个Tomcat 7网络应用程序,我的角色集有问题。我的目标是把所有的东西都塞进UTF-8,然后就这么做吧。事实上,我感到惊讶的是,在2014年,并不是所有东西都默认UTF-8 我阅读了文档,并在系统的默认web.xml中取消了对org.apache.catalina.filters.AddDefaultCharsetFilter过滤器的注释 /etc/tomcat/web.xml: <filter> <filter-name>setCharacterEnco
org.apache.catalina.filters.AddDefaultCharsetFilter
过滤器的注释
/etc/tomcat/web.xml:
<filter>
<filter-name>setCharacterEncodingFilter</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>setCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样做(以及其他一些东西,比如jdbc参数)似乎可以将请求导入UTF-8。但是我如何强制对UTF-8做出响应呢
i、 e
收益率:
Req: UTF-8
Resp: ISO-8859-1
谢谢我以前没有仔细阅读你的问题。由于HTTP标准,默认响应编码为ISO-8859-1。如果您想更改它,您必须自己设置响应的编码
您真正应该做的是阅读Tomcat常见问题解答,其中有一个条目可以回答您提出的确切问题:看起来您正在谈论两个不同的过滤器:
- AddDefaultCharsetFilter(适用于响应)
- 设置字符编码过滤器(适用于请求)
客户端是否发送带有
字符集
参数的内容类型
?Tomcat不会覆盖客户端的设置。客户端是指浏览器吗?那不是请求的一部分吗?这是不起作用的反应。此外,应用程序中的每个页面都以
开头。在web.xml中启用过滤器确实解决了我的字符失真问题。我只是觉得奇怪,它没有推出UTF-8。。。
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.printf("Req: %s\n", req.getCharacterEncoding());
System.out.printf("Resp: %s\n", resp.getCharacterEncoding());
Req: UTF-8
Resp: ISO-8859-1