一尘不染

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

node.js

我将NodeJS与Express一起使用,当我在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'

阅读 1162

收藏
2020-07-07

共1个答案

一尘不染

更新16/03/18

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

2020-07-07