springmvc 添加utf8过滤器后,接收报文乱码。采用@requestBody方式接收的。
去掉过滤器就正常了,但是现在过滤器是整体的过滤器,还不能去掉,不知道大家有什么办法!
web.xml中的过滤器:
<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>
public static void main(String[] args) throws UnsupportedEncodingException {
String str = "交易成功";
String code_utf = "%E4%BA%A4%E6%98%93%E6%88%90%E5%8A%9F";
String code_gbk = "%BD%BB%D2%D7%B3%C9%B9%A6";
String code_error = "%EF%BF%BD%EF%BF%BD%EF%BF%BD%D7%B3%C9%B9%EF%BF%BD";
String x1 = URLDecoder.decode(code_utf, "UTF-8");
String x2 = URLDecoder.decode(code_gbk, "GBK");
System.out.println(x1);
}
code_error 是添加过滤器后形成的编码。转不回来了,大家帮看看怎么回事!
characterEncodingFilter
/*
呃呃呃,不清楚你的前后逻辑,实在不好定位,传入的数据是utf8的嘛?
追问传过来的是应该是gbk的
追答那这个就有问题了,最好传过去的原始数据是utf8的
本回答被网友采纳