NodeJS的decodeURIComponent无法正常工作

5

当我尝试使用decodeURLCompnent在nodeJS中解码以下字符串时:

var decoded = decodeURI('Ulysses%20Guimar%C3%A3es%20-%20lado%20par');
console.log(decoded);

我获得了

Ulysses Guimarães - lado par

使用

Avenida Ulysses Guimarães - lado par 

但是当我在客户端(浏览器)使用相同的代码时,可以得到正确的字符“ã”。

有没有一种方法在Node脚本中将ã转换为ã

3个回答

7

我无法在node的0.10或0.11版本中重现它。

您可以使用new Buffer('Ulysses Guimarães - lado par', 'binary').toString('utf8')将第一个转换为第二个,但这只是一种解决方法,而不是解决方案。

您确定您调用的是decodeURI而不是unescape吗?


4

1

我把这个留在这里,因为我遇到了同样的问题。我在客户端和Nodejs中使用encodeURIcomponent(str)函数,当我使用decodeURI(str)时也遇到了同样的问题。我通过在客户端使用encodeURI(str)解决了这个问题。


8
如果您正在使用encodeURIComponent,应该使用“decodeURIComponent”而不是“decodeURI”。 - giankotarola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接