Introduction: In jquery Ajax POST request, the request, the Chinese in the background, the display as garbled, how to solve it?
Introduction of the problem:
var Regid = $ (' #oregion '). ComboBox (' GetValue ');
var sname = $ (' #sname '). Val ();
var sname = encodeURI ($ (' #sname '). Val (), "UTF-8");
if (regid!= "" &®id!= ' undefined ') {
$.ajax ({
Async:true,
Type: "POST",
DataType: "JSON",
URL: "<%=request.getcontextpath ()%>/secretary/ishasuser.do?regid=" +regid+ "&sname=" +sname,
Success:function (data) {
if (data.mes!= "" &&data.mes!=null) {
$.messager.alert (' Warning ', data.mes);
return false;
}
}
});
}
}
The above code in Ff/chrome, can be normal delivery of Chinese, but under IE, there is a problem, in the background output information is garbled.
Problem attempts:
1. Set the ContentType: "Text/plain; Charset=utf-8 ", the problem still exists
2. Recheck the JSP page where the AJAX code is located, all using Utf-8, but the problem persists
3. In Java code in the background, forcing the use of Utf-8, GBK, gb2312 encoding conversion, the problem remains analyzed, it may be related to the browser or jquery content transmission, and currently can not be accurately determined.
Workaround : Previous paragraph: encodeURI ($ (DOM). Val (), "UTF-8"); Encode using encodeURI
Back-end Java code:
Urldecoder.decode (Inputstr, "UTF-8"): The back-end code decodes the string passed over the previous paragraph.
Summary: Finally, you can send the string information to the Ajax POST request, the normal display of Chinese.