This article introduces you to the solution when the data passed by Ajax contains special characters. Friends who need it can refer to it
Problem description
As follows, the text containing special characters is encapsulated in JSON and passed through Ajax.
var data = {"Id": id, "text": text};
In Data reception cannot be performed in the background.
Solution
Replace
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
with:
req.setRequestHeader("Content-type", "application/json; charset=utf-8");
Accept data in the background:
//进行json数据的接收 StringBuilder sb = new StringBuilder(); BufferedReader br = request.getReader(); char[] buff = new char[10000]; int len; while((len = br.read(buff)) != -1){ sb.append(buff, 0, len); } String mess = sb.toString(); //将字符串转换为JSON对象 JSONObject jsonObject=new JSONObject(mess); //获取其中的值 jsonObject.getInt("Id"); //含有特殊字符的文本需要先进行转码 URLDecoder.decode(jsonObject.getString("text"), "UTF-8"));
In this way, you can receive the text correctly~
The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.
Related articles:
The AJAX paging effect is simple Implementation (graphic tutorial)
Json-lib processing solution when using frameworks such as Ajax or Easyui (graphic tutorial)
The above is the detailed content of How to solve the problem of Ajax passing data with special characters. For more information, please follow other related articles on the PHP Chinese website!