没有URLdecode 也没有URLdecode 也没有urldecode
发布于 9 年前 作者 itkdqwzero 5425 次浏览 最后一次编辑是 8 年前 来自 问答

querystring模块, 用于把对象转成字符串. 但会把中文转成三个百分号的字符串, 我发现nodejs 没办法把这些字符串转回正常的中文字符.

百度出来只有这个: https://cnodejs.org/topic/54549a519e0a00c814b7dc9f 我的情况跟他不一样, 不是html的字符, 是url里的字符, 且npm install true-html-escaper 这样也没法安装那个模块.

6 回复

代码看看?

var querystring=require(‘querystring’); array[i]= querystring.stringify(array[i],’,’,’:’); 代码本来删了的, 用JSON.stringify代替了.

之前不知为何, JSON这个类不能用, 现在能用了.

我的问题是, 如果把中文字符转成url格式, 在NodeJs里没有转回来的方法. 客户端有URLdecode这个函数.

那不能啊 urlencode之后再urldecode必须得到正确的字符串。3个百分号也没错,是UTF8编码,没错。 上面贴的源码都没有 urlencode 和 decode 啊?

@klesh 使用urldecode会提示函数未定义, 也就是, nodejs 本来是没有带这些函数的.

D:\NodeLocal\urldecode.js:2 urldecode(’’); ^ ReferenceError: urldecode is not defined at Object.<anonymous> (D:\NodeLocal\urldecode.js:2:1) at Module._compile (module.js:460:26) at Object.Module._extensions…js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.Module.runMain (module.js:501:10) at startup (node.js:129:16) at node.js:814:3

JS并没原生的urldecode,但encodeURIComponent就可以替代,把JS文件自己的ANSI另存为UTF-8,再执行代码就行了,昨天刚好处理过这个问题

@wldlzt 使用decodeURIComponent就可以了, 谢谢

回到顶部