Fonction de décodage d'URL JavaScript

Quel est le meilleur utilitaire de décodage d'URL JavaScript? Le codage serait sympa aussi et bien travailler avec jQuery est un bonus supplémentaire.

J'ai utilisé encodeURIComponent () et decodeURIComponent () aussi.

Voici une fonction complète (prise de PHPJS ):

 function urldecode(str) { return decodeURIComponent((str+'').replace(/\+/g, '%20')); } 
 decodeURIComponent(mystring); 

Vous pouvez obtenir des paramètres passés en utilisant ce bit de code:

 //parse URL to get values: var i = getUrlVars()["i"]; function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for (var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } 

Ou ce one-liner pour obtenir les paramètres:

 location.search.split("your_parameter=")[1] 

Utilisez ceci

 unescape(str); 

Je ne suis pas un excellent programmeur JS, essayé tous, et cela a bien fonctionné!

 //How decodeURIComponent Works function proURIDecoder(val) { val=val.replace(/\+/g, '%20'); var str=val.split("%"); var cval=str[0]; for (var i=1;i<str.length;i++) { cval+=String.fromCharCode(parseInt(str[i].substring(0,2),16))+str[i].substring(2); } return cval; } document.write(proURIDecoder(window.location.href)); 

Si vous êtes responsable d'encoder les données en PHP en utilisant urlencode, le code rawurlen de PHP fonctionne avec JavaScript decodeURIComponent sans avoir à remplacer le caractère +.

Voici ce que j'ai utilisé:

En JavaScript:

 var url = "http://www.mynewsfeed.com/articles/index.php?id=17"; var encoded_url = encodeURIComponent(url); var decoded_url = decodeURIComponent(encoded_url); 

En PHP:

 $url = "http://www.mynewsfeed.com/articles/index.php?id=17"; $encoded_url = url_encode(url); $decoded_url = url_decode($encoded_url); 

Vous pouvez également l'essayer en ligne ici: http://www.mynewsfeed.x10.mx/articles/index.php?id=17