问题描述
我在Express上使用NodeJS,当我在URL中使用外来字符时,它们会自动进行编码。
I'm using NodeJS with Express, and when I use foreign characters in the URL, they automatically get encoded.
如何将其解码
在调用NodeJS之前,我转义了字符。
Before calling NodeJS, I escape characters.
所以字符串:אובמה
成为%u05D0%u05D5%u05D1%u05DE%u05D4
整个URL现在看起来像: http:// localhost:32323 /?query =%u05D0%u05D5%u05D1% u05DE%u05D4
The entire URL now looks like: http://localhost:32323/?query=%u05D0%u05D5%u05D1%u05DE%u05D4
现在在我的NodeJS中,我得到了转义的字符串%u05D0%u05D5%u05D1%u05DE% u05D4
。
Now in my NodeJS, I get the escaped string %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
库,但似乎没有适合我的情况。
I've tried url
and querystring
libraries but nothing seems to fit my case.
querystring.unescape(query); // still '%u05D0%u05D5%u05D1%u05DE%u05D4'
推荐答案
更新16/03/18
转义
和 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 );
这篇关于NodeJS Express对URL进行编码-如何解码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!