欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于Ajax请求中传输中文乱码问题的解决方案

程序员文章站 2022-04-29 09:19:14
今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题。 如下代码: function updatefolderinfobycustid(folderi...

今天遇到一个问题,有关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);
}
}
}

经此转换之后,即可获取到传输的汉字。

以上所述是小编给大家介绍的关于ajax请求中传输中文乱码问题的解决方案,希望对大家有所帮助