跳到主要内容
CNode

使用decodeURIComponent 解码GBK的url出现URI malformed错误,求解决方法

社区
Xxlkmuu发布于 13 年前最后回复 13 年前
6268800

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)

C
chloe#613 年前
S
shiedman#513 年前

如果只限于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);

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

X
xlkmuu#313 年前

没有现成的模块么?

C
chloe#113 年前

你自己写个程序转换

参与回复

登录后即可参与回复。登录