html页面获取get参数乱码,JS 获取url参数以及中文乱码问题

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

}

中文乱码问题

在上面的结果中可以看到这里中文已经被encodeURI编码了

所以我们需要decodeURI

var msg =decodeURI(getParamFromUrl('name'))

console.log(msg) // å称

仍然出现乱码,这是英文在url我们需要输入编码后的地址而且需要编码两次

编码一次

encodeURI('http://a.com/index.html?name=名称&type=类型')

// http://a.com/index.html?name=%E5%90%8D%E7%A7%B0&type=%E7%B1%BB%E5%9E%8B

输入到浏览器时还是编码前的

4b3de9b2bcf2369aaade007204133f7c.png

编码两次

encodeURI(encodeURI('http://a.com/index.html?name=名称&type=类型'))

// http://a.com/index.html?name=%25E5%2590%258D%25E7%25A7%25B0&type=%25E7%25B1%25BB%25E5%259E%258B

65f4645a1540f47936f5ee6a34d9a99c.png

因为浏览器地址栏会进行编码为中文所以需要编码两次到浏览器地址栏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值