Thème > Développement

Encodages des paramètres d'url

Encoder vos paramètres d'url

La plupart des Api de Share (ou Partage) consiste ajouter un ou des paramètres à une url.
Il faut donc encoder les valeurs de ses paramètres pour que les caractères accentués soient correctement identifiés par l'Api que va les lire.
Imaginons que l'url que je veux partagée soit :
Exemple de code :
http://www.aliasdmc.com/patager.php?article=super&type=article

et que mon url de l'Api de partage soit :
Exemple de code :
http://www.aliasdmc.fr/share.php?url=URL_A_PARTAGER


Ce qui donne si je n'encode pas URL_A_PARTAGER:
Exemple de code :
[lang-html][/lang-html]http://www.aliasdmc.fr/share.php?url=http://www.aliasdmc.com/patager.php?article=super&type=article

L'Api qui va récupérer les paramètres suivant :
url=http://www.aliasdmc.com/patager.php?article=super
et
type=article

Mais si j'encode URL_A_PARTAGER :
Exemple de code :
http://www.aliasdmc.fr/share.php?url=http%3A%2F%2Fwww.aliasdmc.com%2Fpatager.php%3Farticle%3Dsuper%26type%3Darticle

L'Api qui va récupérer le paramètre suivant :
url=http://www.aliasdmc.com/patager.php?article=super&type=article

Un autre élément important c'est l'encodage de base des caractères. En effet l'encodage d'un "é" en ANSI (%E9),n'est pas la même que l'encodage d'un "é" en UTF-8 (%C3%A9). D'après mes tests, il faut encoder une chaine en UTF-8, sinon les Api interprètent mal les paramètres.

En Javascript utilisez encodeURIComponent :
Exemple de code :
var monShare ='http://www.aliasdmc.fr/share.php?url='+encodeURIComponent(document.location.toString())


En Php utilisez rawurlencode :
Exemple de code :
$monShare ='http://www.aliasdmc.fr/share.php?url='.rawurlencode('MON_URL');