Сегодня я столкнулся с проблемой передачи китайцев в запросе Ajax и столкнулся с искаженным кодом.
Следующий код:
Кода -копия выглядит следующим образом:
Функция UpdateFolderInfobyCustid (Foterid, Foldername, Custid) {
$ .ajax ({
Тип: "post",
ContentType: "Application/x-Www-form-Urlencoded; charset = utf-8",
URL: "http: //localhost/crm/ashx/handkbscesscustomer.ashx? Method = updateCustomerbyCustid & fotherid ="
+ fotherid + "& foldername =" + encodeuri (encodeuri (foldername)) + "& custid =" + custid,
Успех: function (msg) {
оповещение (MSG);
},
Ошибка: функция (ошибка) {
оповещение (ошибка);
}
});
}
Если приведенный выше код только что пройдет "& Fodername ="+Foldername, китайские имена будут производить искаженную код.
«%e6%b5%8b%eb%af%95» формат. После преобразования в этот формат он транскодируется при получении, как показано ниже:
Кода -копия выглядит следующим образом:
public void updateCustomerByCustid ()
{
int fotherid = convert.toint32 (запрос ["foterid"]);
string foldername = request ["foldername"];
string foldername2 = convert.toString (system.web.httputility.urldecode (foldername));
int custid = convert.toint32 (запрос ["custid"]);
bool res = false;
пытаться
{
res = customerbusiness.updateCustomerbyCustid (foterid, foldername2, custid);
}
Уловитель (Exception Ex)
{
бросать;
}
Response.write (res);
}
}
}
После этого преобразования могут быть получены переданные китайские иероглифы.