解决使用Ajax 前台提交表单到后台,但输出为问号的中文乱码情况

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章