如果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
答案 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
下拉列表并单击“应用”。