CNode

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

Xxlkmuu发布于13 年前最后回复13 年前6 回复26869 浏览0 收藏

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#1·13 年前

你自己写个程序转换

X
xlkmuu#3·13 年前

没有现成的模块么?

S
shiedman#5·13 年前

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

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

C
chloe#6·13 年前
参与回复
登录后即可参与回复。登录