Quel est le meilleur utilitaire de décodage d'URL JavaScript? Encoder serait bien aussi et bien travailler avec jQuery est un bonus supplémentaire.
J'ai utilisé encodeURIComponent () et decodeURIComponent () aussi.
Voici une fonction complète (tirée 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 grand programmeur JS, j'ai tout essayé et cela a fonctionné à merveille!
//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 de l'encodage des données dans PHP à l'aide de urlencode, le code rawurlencode de PHP fonctionne avec le composant decodeURIComponent de JavaScript sans qu'il soit nécessaire de 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
var uri = "my test.asp?name=ståle&car=saab";
console.log(encodeURI(uri));