JS 获取url参数以及中文乱码问题

xiaoxiao2025-07-27  11

encodeURI() 函数可把字符串作为 URI 进行编码

获取请求url中参数 http://a.com/index.html?name=名称&type=类型 var para=window.location.search;// 当前请求的url的参数部分 console.log(para) // 结果 ?name=%E5%90%8D%E7%A7%B0&type=%E7%B1%BB%E5%9E%8B 获取指定参数 //根据参数部分和参数名来获取参数值 function getParamString(paraPart,name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = paraPart.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } function getParamFromUrl(name){ var r = getParamString(window.location.search,name) return r } 中文乱码问题 在上面的结果中可以看到这里中文已经被编码了 所以我们需要decodeURI var msg =decodeURI(getParamFromUrl('name')) console.log(msg) // 名称

仍然出现乱码,这是因为浏览器默认使用的是 encodeURI 而我们用的是unescape进行的解码

换成decodeURI解码即可 function getParamString(paraPart,name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = paraPart.substr(1).match(reg); - if (r != null) return unescape(r[2]); return null; + if (r != null) return decodeURI(r[2]); return null; }

输入到浏览器时

获取参数后 var msg =decodeURI(getParamFromUrl('name')) console.log(msg) // 名称
转载请注明原文地址: https://www.6miu.com/read-5033826.html

最新回复(0)