NodeJS Express 对 URL 进行编码 - 如何解码

新手上路,请多包涵

我在 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'

我试过 urlquerystring 库,但似乎没有什么适合我的情况。

 querystring.unescape(query); // still '%u05D0%u05D5%u05D1%u05DE%u05D4'

原文由 AlexD 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2k
2 个回答

2018 年 16 月 3 日更新

escapeunescape弃用

利用:

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);

原文由 eckymad 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题