js url解码gbk_JS解析urlencode编码(gbk或utf-8版中文编码均可解析)

我们都知道urlencode编码一般用于url网址中,它的格式是带有%符号的十六进制编码,起着保护隐私的作用,例如这段url编码“%ce%d2%ca%c7%d6%d0%b9%fa%c8%cb(我是中国人)”,是gbk版本的,那么我们该如何来使用js解析这一段gbk2313的编码呢?代码如下://gbkStr是urlencode编码,作为参数传入

function gbkconvert(gbkStr, callback) {

var script = document.createElement('script');

script.id = 'gbkconvert';

script.src = 'data:text/javascript;charset=gbk,gbkconvertCb("' + gbkStr + '");';

document.body.appendChild(script);

window.gbkconvertCb = (res) => {

callback && callback(res);

};

}

//使用解码函数,获得回调结果

gbkconvert('%ce%d2%ca%c7%d6%d0%b9%fa%c8%cb',(res) => {

console.log(res); //输出我是中国人

})

代码分析:

本次js代码使用了一个callback回调函数,其实js本身没有urldecode这样的解码功能,这个函数的原理是定义script标签,添加到document对象中,来让浏览器识别gbk编码,然后打印出来。

提醒:

如果想要使用js来解析utf-8版的urlencode编码,则只需将上方函数中的“charset=gbk” 改成 “charset=utf-8” 即可。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/js_css/949.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值