今天遇到一个问题,有关ajax请求中传输中文,遇到乱码的问题。
如下代码:
复制代码 代码如下:
function updatefolderinfobycustid(folderid, foldername, custid) {
$.ajax({
type: post,
contenttype: application/x-www-form-urlencoded; charset=utf-8,
url: http://localhost/crm/ashx/handkbsucesscustomer.ashx?method=updatecustomerbycustid&folderid=
+ folderid + &foldername= + encodeuri(encodeuri(foldername)) + &custid= + custid,
success: function (msg) {
alert(msg);
},
error: function (error) {
alert(error);
}
});
}
如上代码 如果只是传“&fodername=”+foldername 的话,汉字就会产生乱码,如果经过encodeurl 转换两次的话,汉字编码会变为类似
“%e6%b5%8b%eb%af%95” 的格式。转换为这种格式之后,在获取的时候在转码,如下所示:
复制代码 代码如下:
public void updatecustomerbycustid()
{
int folderid = convert.toint32(request[folderid]);
string foldername = request[foldername];
string foldername2 = convert.tostring(system.web.httputility.urldecode(foldername));
int custid = convert.toint32(request[custid]);
bool res = false;
try
{
res = customerbusiness.updatecustomerbycustid(folderid, foldername2, custid);
}
catch (exception ex)
{
throw;
}
response.write(res);
}
}
}
经此转换之后,即可获取到传输的汉字。