我在 Express 中使用 NodeJS,当我在 URL 中使用外来字符时,它们会自动进行编码。
如何将其解码回原始字符串?
在调用 NodeJS 之前,我会转义字符。
所以字符串: אובמה
变成 %u05D0%u05D5%u05D1%u05DE%u05D4
整个 URL 现在看起来像: http://localhost:32323/?query=%u05D0%u05D5%u05D1%u05DE%u05D4
现在在我的 NodeJS 中,我得到了转义字符串 %u05D0%u05D5%u05D1%u05DE%u05D4
。
这是相关代码:
var url_parts = url.parse(req.url, true);
var params = url_parts.query;
var query = params.query; // '%u05D0%u05D5%u05D1%u05DE%u05D4'
我试过 url
和 querystring
库,但似乎没有什么适合我的情况。
querystring.unescape(query); // still '%u05D0%u05D5%u05D1%u05DE%u05D4'
原文由 AlexD 发布,翻译遵循 CC BY-SA 4.0 许可协议
2018 年 16 月 3 日更新
escape
和unescape
已 弃用。利用:
encodeURIComponent('אובמה') // %D7%90%D7%95%D7%91%D7%9E%D7%94
decodeURIComponent('%D7%90%D7%95%D7%91%D7%9E%D7%94') // אובמה
旧答案
unescape('%u05D0%u05D5%u05D1%u05DE%u05D4')
给出"אובמה"
尝试:
var querystring = unescape(query);