通过url方式传递中文参数时出现的中文乱码问题的处理

1.通过url将参数【会有中文的情况】传递到另外一个页面:

  

window.location.href = "/XXXX/XXXX?searchcontent=" + Content + "";【数据会自动被编码】

  

2.从另外页面通过参数形式获取到中文参数,然后传递到对应api进行处理查询。

//获取url中的参数
function getUrlParam(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
    var r = window.location.search.substr(1).match(reg); //匹配目标参数
    if (r != null) return unescape(r[2]); return null; //返回参数值
}

var searchContent =escape( getUrlParam("searchcontent"));【对参数进行一次解码】

 $.ajax({
        type: "Post",
        url: XXXX,
        dataType: 'json',
        data: { SearchContent: searchContent },
        success: function (result) {

         //成功后的处理方法


        },
        error: function (xhr, type) {
            
            console.log("Ajax error");
   
        }
    });

  

3.后台获取数据进行解码,进行其他处理

 var EnCodeResult = HttpContext.Current.Request["SearchContent"].ToString();
 var SearchContent = HttpContext.Current.Server.UrlDecode(EnCodeResult);【对参数进行一次解码】
//然后进行其他处理

  

原文地址:https://www.cnblogs.com/pressforward/p/7810448.html