利用JS获取地址栏的中文参数,如何避免取到乱码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用JS获取地址栏的中文参数,如何避免取到乱码?相关的知识,希望对你有一定的参考价值。

地址栏中为:localhost:22865/ZYHSYY.aspx?BQH=305&DoctorName=张三&DoctorId=100
我想利用JS获取到“张三”,请问该如何写js?目前我能取到DoctorName参数,但是得到的是乱码

地址栏的URL不同的浏览器的行为不太一样,有的会按归照GB编码编码成%A1%A1这种形式,有的会按照UTF-8编码,直接输入URL和点击链接访问的URL也可能不一样。
这样js取值的时候会出现字符集的问题。
建议还是修改ASPX文件,取到值以后生成js时赋值给某个变量。
参考技术A 那不叫乱码,而是url编码,js本身就是读取url编码的
对于js获取url的中文你可以尝试用escape() encodeURI() encodeURIComponent() decodeURI()
来使js停止或者转换url编码本回答被提问者和网友采纳
参考技术B 将参数encode编码解码操作 参考技术C decodeURI() 用这个试试

js如何获取地址栏的参数

//获取参数的方法(利用正则表达式)

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;
}

  

//如何使用

String url ="localhost:8080/Demo/index.html?id=123&name=lxy";

  

//注意在这里使用要确保地址有相对应的key才能获取到值

//获取id

var id = GetUrlParam("id");
console.log("id="+id);//id=123

//获取name var name = GetUrlParam("name");
console.log("name="+name);//name=lxy


  

 






以上是关于利用JS获取地址栏的中文参数,如何避免取到乱码?的主要内容,如果未能解决你的问题,请参考以下文章

JS获取URL传的值与解决获取URL中的中文参数出现乱码

js如何获取地址栏的参数

用JS获取地址栏参数的方法

js如何获取地址栏加密参数

js获取当前url地址参数中文乱码问题

JS获取地址栏的参数值