NodeJS decodeURIComponent ne fonctionne pas correctement

Quand j’ai essayé de décoder la chaîne ci-dessous dans nodeJS en utilisant decodeURLCompnent:

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

j’ai eu

 Ulysses Guimarães - lado par 

Au lieu de

 Avenida Ulysses Guimarães - lado par 

Mais lorsque j’utilise le même code côté client (navigateur), je peux obtenir le bon caractère ‘ã’.

Existe-t-il un moyen de convertir de ã à ã dans un script Node?

Je ne peux pas le reproduire dans les versions 0.10 ou 0.11 de node.

Vous pouvez convertir le premier au second en utilisant le new Buffer('Ulysses Guimarães - lado par', 'binary').toSsortingng('utf8') , mais c’est une solution de contournement, pas une solution.

Etes-vous sûr d’appeler decodeURI, pas unescape?

Je laisse juste ça ici, parce que j’ai eu le même problème. J’utilisais la fonction encodeURIcomponent(str) dans le client et dans Nodejs quand j’ai fait decodeURI(str) avait le même problème. Je l’ai résolu en utilisant encodeURI(str) chez le client.

Utilisez var queryssortingng = require("queryssortingng");

La méthode queryssortingng.unescape () effectue le décodage des caractères encodés en pourcentage d’URL sur la chaîne donnée.

puis queryssortingng.unescape(str) conformément à la documentation:

https://nodejs.org/api/queryssortingng.html#queryssortingng_queryssortingng_unescape_str