nodejs:如何从解码的url查询字符串中获取原始值

时间:2014-09-30 15:35:09

标签: node.js unicode

如果url包含非英文字符,则以百分比解码格式编码 像这样

%D8%A7%D9%84%D8%B3%D9%8A%D8%AF%20Ahmed

在nodejs程序中,我需要将此值解码为其原始值。

我试过了:

var qs = require('querystring');
console.log(qs.unescape('%D8%A7%D9%84%D8%B3%D9%8A%D8%AF%20Ahmed'));

和这个

console.log(swapBytes(new Buffer(%D8%A7%D9%84%D8%B3%D9%8A%D8%AF%20Ahmed,'hex')).toString('utf8'));

并且都给了我错误的价值:السيد Ahmed

原始价值是: السيد Ahmed

1 个答案:

答案 0 :(得分:2)

这对我有用:

var buf = new Buffer('d8a7d984d8b3d98ad8af2041686d6564', 'hex');
console.log(buf.toString('utf8'));

它在终端的右侧显示预期的名称。您可以确保您的LANG环境变量在国家/语言之后有.UTF-8(例如en_US.UTF-8)。如果您使用PuTTY之类的东西在控制台中测试输出,请务必更改Remote character set - > Window中的Translation选项,以便连接到UTF-8下拉列表并单击“应用”。