事实证明
HttpServletRequest#setCharacterEncoding(String)哪种
CharacterEncodingFilter用途
覆盖此请求正文中使用的字符编码的名称 。在读取请求参数或使用getReader()读取输入之前,必须先调用此方法。否则,它将无效。
这对您没有好处,因为您不是从正文中获取参数,而是从查询字符串中获取参数。
但是,如果您使用的是Tomcat,那么您会很幸运。Tomcat具有一个特殊的
Connector属性,该属性在设置时(默认情况下未设置)将对查询字符串使用相同的字符编码。
该属性为
useBodyEncodingForURI。如果打开Tomcat
servet.xml文件,则会找到一个类似的元素(不带属性)
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"></Connector>
添加该属性,它将按预期工作。
Connector在这种情况下,请确保将其设置为适当的HTTP。
其他Servlet容器可能具有一些类似的配置。



