querystring模块, 用于把对象转成字符串. 但会把中文转成三个百分号的字符串, 我发现nodejs 没办法把这些字符串转回正常的中文字符.
百度出来只有这个: https://cnodejs.org/topic/54549a519e0a00c814b7dc9f 我的情况跟他不一样, 不是html的字符, 是url里的字符, 且npm install true-html-escaper 这样也没法安装那个模块.
代码看看?
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就可以了, 谢谢