最近自己写的东西需要用到数据处理,当然想到了ajax,而jquery ajax用起来也是非常方便。
由于传输的数据包含有中文字符,在实际的使用中发现了一些问题。
采用不用的方式,比如用GET或者POST时,对于中文的处理也不尽相同。
在使用get方式时,需要给传输的数据用escape()方法做下处理。在处理页面直接用Request.QueryString接收就可以,中文不会出现乱码。
$.ajax({
url: "处理程序链接?aaa="+escape("哈哈哈"),
type: "GET",
datatype: "json",
beforeSend: function(XMLHttpRequest) {
//ShowLoading();
},
complete: function(XMLHttpRequest, textStatus) {
//HideLoading();
},
success: function(data) {
}
});
在使用post方式时,对于数据的处理方式就不同了。在客户端用encodeURIComponent()方法做处理
$.ajax({
url: "AjaxReply.htm",
type: "POST",
data: { "userName": encodeURIComponent("数据1"), "comid": encodeURIComponent("数据2")},
datatype: "json",
success: function(data) {
}
});
在处理程序里面。
HttpUtility.UrlDecode(Request.Form["userName"].ToString())
这样可以解决掉中文传输的乱码问题。
因为在使用post方式时,传输中文出现乱码,在网上找了很多方法都不能解决,最后还是这样可以解决问题。
这是本人在使用的时候碰见的问题,欢迎高手提问指正。