更改Tomcat字符编码设置及解决post请求中文字符乱码

我遇到这个问题的时候是在做一个第三方支付接口的时候,在回调函数中,解码URL的时候怎么解都不好使,解出来是乱码的问题,搞了半天没解决,百度找到了另一种方法。

这是第一种方法

new String(getURLDecoderString(json).getBytes("ISO-8859-1"),"utf-8")//json是你要解码的东西

第二种方法,后来的时候公司的以为大佬指点,出现这种情况的原因是因为tomcat默认编码的问题,一般情况下要设置tomcatget请求只需要在server.xml中加上如下配置。

但是这种配置设置编码的方法只对get请求有效但是对于post请求没有用

Post请求需要指定它发送的参数和值的编码。因为大多数客户端并没有设置一个明确的编码,默认采用的是ISO-8859-1。大多数情况下,这并不是我们想要的编码,我们可以使用过滤器来进行控制,Tomcat已经提供了完成这个功能的过滤器的例子或者内置了。请参看:



webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java



webapps/servlets-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java
webapps/jsp-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java



webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java




setCharacterEncodingFilter
org.apache.catalina.filters.SetCharacterEncodingFilter

   encoding
   UTF-8



setCharacterEncodingFilter
/*

 

你可能感兴趣的:(更改Tomcat字符编码设置及解决post请求中文字符乱码)