解决使用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方式提交的表单!