前台后台编码都是utf-8但是传中文还出现乱码的解决方法。

前台:代码

 
  

$.ajax({
    url: "user/getSolrTest",//方法路径URL
    data: {
        name1:$('#solrtest').val()
    },//参数
    dataType: 'json',
    type: 'POST',
    async: false,//默认异步调用 false:同步
    success: function (data) {
        var retInfo = eval(data);
        //提交成功
        if (retInfo == true) {
            alert("Data Loaded: " +JSON.stringify(data));
        }
    },
    error: function () {
        alert('提交数据失败!');
    }
})

后台代码:

@RequestMapping("/getSolrTest")
@ResponseBody
public SolrDocumentList getSolrTest(HttpServletRequest request, HttpServletResponse response) throws  Exception {
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    String name1=request.getParameter("name1").toString();
    HttpSolrServer solrServer=new HttpSolrServer("http://localhost:8083/solr/shopdscore");
    SolrQuery query=new SolrQuery();
    query.setQuery("name1:*"+name1+"*");
    query.setStart(0);
    query.setRows(10);
    QueryResponse queryResponse=solrServer.query(query);
    SolrDocumentList solrDocumentList=queryResponse.getResults();
    return  solrDocumentList;



}

出现乱码,直到我在前台js中加上:

contentType:'application/x-www-form-urlencoded;charset=UTF-8',参数就好了。
$.ajax({
    url: "user/getSolrTest",//方法路径URL
    data: {
        name1:$('#solrtest').val()
    },//参数
    dataType: 'json',
    type: 'POST',
    async: false,//默认异步调用 false:同步
    contentType:'application/x-www-form-urlencoded;charset=UTF-8',
    success: function (data) {
        var retInfo = eval(data);
        //提交成功
        if (retInfo == true) {
            alert("Data Loaded: " +JSON.stringify(data));
        }
    },
    error: function () {
        alert('提交数据失败!');
    }
})

 

你可能感兴趣的:(前台后台编码都是utf-8但是传中文还出现乱码的解决方法。)