我们都知道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