解决使用Ajax 前台提交表单到后台,但输出为问号的中文乱码情况
情况如下:
在web.xml文件中已经配置了,如下的spring的Filter
<filter>
<filter-name>encodingFilter</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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我的前台页面的表单如下:
<form action="">
......
<button type="button" class="btn btn-primary btn-lg" id="createButton"onclick="getAllInfo()">
创建
</button>
</form>
涉及到的ajax代码如下:
$.ajax({
type: "POST",
url: 'addhw',
data: {
......
dataType:'json',
cache: false,
success: function(data){
alert("ok!")
......
},
error:function (data) {
console.log(JSON.stringify(data));
......
}
});
}
并且本地的tomcat的server.xml也已经设置了UTF-8。
并且我在后台也已经对request的字符编码进行设置,但是依旧无法正确得到中文参数
输出依旧是?????
解决方案:
在百度试了很多遍之后,找到了正确的解决办法:
在VM option里面,加上如下的一段话:
-Dfile.encoding=UTF-8
即正确输出所有通过AJAX,POST方式提交的表单!