当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《NodeJSExpress对URL进行编码-如何解码》经验,为你挑选了2个好方法。

我正在使用NodeJS和Express,当我在URL中使用外来字符时,它们会自动进行编码.

如何将其解码回原始字符串?

在调用NodeJS之前,我转义了字符.

所以字符串: ?????

%u05D0%u05D5%u05D1%u05DE%u05D4

整个网址现在看起来像: 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'

小智.. 45

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



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


这已被推荐多年了:http://cwestblog.com/2011/05/23/escape-unescape-deprecated/

2> 小智..:

您应该使用decodeURI()encodeURI()编码/解码具有外来字符的URL.

用法:

var query = 'http://google.com';
query = encodeURI(query);
query = decodeURI(query); // http://google.com

MDN参考:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI


使用`encodeURIComponent`和`decodeURIComponent`.如果您没有需要编码的完整URI,这些将起作用.
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有