zl程序教程

您现在的位置是:首页 >  其他

当前栏目

ajax请求乱码的解决方法(中文乱码)

中文方法AJAX 解决 乱码 请求
2023-06-13 09:15:24 时间

今天遇到一个问题,有关ajax请求中传输中文,遇到乱码的问题。

如下代码:

复制代码代码如下:

functionUpdateFolderInfoByCustId(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”的格式。转换为这种格式之后,在获取的时候在转码,如下所示:

复制代码代码如下:

 publicvoidUpdateCustomerByCustId()
       {
           intfolderId=Convert.ToInt32(Request["folderId"]);
           stringfolderName=Request["folderName"];
           stringfolderName2=Convert.ToString(System.Web.HttpUtility.UrlDecode(folderName));
           intcustId=Convert.ToInt32(Request["custId"]);
           boolres=false;
           try
           {
               res=CustomerBusiness.UpdateCustomerByCustId(folderId,folderName2,custId);
           }
           catch(Exceptionex)
           {
              throw;
           }
           Response.Write(res);
       }
   }
}

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