NodeJS Express code de l'URL - comment décoder
Je suis en utilisant NodeJS avec Express, et quand j'ai utiliser des caractères dans l'URL, ils sont automatiquement codé.
Comment décoder le dos à la chaîne d'origine?
Avant d'appeler NodeJS, je les caractères d'échappement.
La chaîne: אובמה
Devient %u05D0%u05D5%u05D1%u05DE%u05D4
L'intégralité de l'URL ressemble maintenant à: http://localhost:32323/?query=%u05D0%u05D5%u05D1%u05DE%u05D4
Maintenant dans mon NodeJS, j'ai échappé à la chaîne %u05D0%u05D5%u05D1%u05DE%u05D4
.
C'est le code correspondant:
var url_parts = url.parse(req.url, true);
var params = url_parts.query;
var query = params.query; //'%u05D0%u05D5%u05D1%u05DE%u05D4'
J'ai essayé url
et querystring
bibliothèques, mais rien ne semble correspondre à mon cas.
querystring.unescape(query); //still '%u05D0%u05D5%u05D1%u05DE%u05D4'
Vous devez vous connecter pour publier un commentaire.
Mise à jour 16/03/18
escape
etunescape
sont obsolète.Utilisation:
encodeURIComponent('אובמה') //%D7%90%D7%95%D7%91%D7%9E%D7%94
decodeURIComponent('%D7%90%D7%95%D7%91%D7%9E%D7%94') //אובמה
Vieille réponse
unescape('%u05D0%u05D5%u05D1%u05DE%u05D4')
donne"אובמה"
Essayer:
var querystring = unescape(query);
querystring.unescape(str)
au lieuVous devez utiliser
decodeURI()
etencodeURI()
pour encoder/décoder une URL avec des caractères étrangers.Utilisation:
De référence sur MDN:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI
decodeURI(query)
renvoie unemalformed uri
erreur. Je ne vois pas comment je peux l'utiliser dans ce cas.encodeURIComponent
etdecodeURIComponent
. Ceux-ci travaillent dans le cas où vous ne disposez pas d'un URI complète qui doit être codée.