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 :
et que mon url de l'Api de partage soit :
Ce qui donne si je n'encode pas URL_A_PARTAGER:
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 :
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 :
En Php utilisez rawurlencode :
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=articleet que mon url de l'Api de partage soit :
Exemple de code :
http://www.aliasdmc.fr/share.php?url=URL_A_PARTAGERCe qui donne si je n'encode pas URL_A_PARTAGER:
Exemple de code :
http://www.aliasdmc.fr/share.php?url=http://www.aliasdmc.com/patager.php?article=super&type=articleL'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%3DarticleL'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');