您的位置:首页 > 编程语言 > Java开发

笔记:SpringMVC中如何解决POST/GET请求中文乱码问题

2019-03-20 15:18 375 查看

中文乱码

解决POST中文乱码问题

  • 在web.xml中添加CharacterEncodingFilter过滤器,设置编码格式
<filter>
<filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

解决GET中文乱码问题

  • tomcat的server.xml中 在第一个Connector标签加入一个属性,来设置编码格式
  • (即设置tomcat访问端口的位置)
<Connector URIEncoding='UTF-8' connectionTimeout="2000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

关于CharacterEncodingFilter

关键代码

...
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
String encoding = this.getEncoding();
if(encoding != null) {
if(this.isForceRequestEncoding() || request.getCharacterEncoding() == null) {
request.setCharacterEncoding(encoding);
}

if(this.isForceResponseEncoding()) {
response.setCharacterEncoding(encoding);
}
}

filterChain.doFilter(request, response);
}
...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: