使用decodeURIComponent 解码GBK的url出现URI malformed错误,求解决方法
发布于 11 年前 作者 xlkmuu 25958 次浏览 最后一次编辑是 8 年前

var a = ‘%CC%EC%D4%DE%D6%FA%BB%E1%D4%B1%C9%ED%B7%DD’;

/Users/liurex/Documents/ShopService/app.js:49 var ccc = decodeURIComponent(a); ^ URIError: URI malformed

6 回复

你自己写个程序转换

没有现成的模块么?

如果只限于nodejs平台,可利用已有的gbk->unicode模块

//npm install iconv-lite
var iconv=require('iconv-lite');
var a = '%CC%EC%D4%DE%D6%FA%BB%E1%D4%B1%C9%ED%B7%DD';
a=a.replace(/%([a-zA-Z0-9]{2})/g,function(_,code){
    return String.fromCharCode(parseInt(code,16));
});
var buff=new Buffer(a,'binary');
var result=iconv.decode(buff,'gbk');
console.log(result);

如果要在浏览器端跑,楼上童鞋正解

说得非常正确 这个版本没有代码高亮啊,没有贡献呢

回到顶部