Comment fonctionne l’encodage URL
Une adresse web n’accepte que peu de caractères : lettres sans accent, chiffres et quelques signes. Tout le reste est encodé. En UTF-8, le é se compose des octets C3 et A9 et devient donc %C3%A9. Une espace devient %20, ou + dans les formulaires.
Encodé
Caf%C3%A9 %C3%A0 Besan%C3%A7on
Décodé
Café à Besançon
Les codes URL les plus fréquents
%C3%A9= é,%C3%A8= è,%C3%AA= ê,%C3%A0= à%C3%A7= ç,%C3%B4= ô,%C3%AB= ë,%C3%AF= ï%C2%AB= «,%C2%BB= »,%E2%82%AC= €,%E2%80%99= ’%20= espace,%2F= /,%3F= ?,%26= &,%25= %
Les anciens systèmes encodent chaque lettre sur un seul octet Windows-1252 : caf%E9 au lieu de caf%C3%A9. Mojibuster le reconnaît aussi et en fait café.
D’où vient le texte encodé en URL
- Liens copiés : le navigateur affiche
wikipedia.org/wiki/Besançonlisiblement, mais la copie met souventBesan%C3%A7ondans le presse-papiers. - Formulaires et suivi : les recherches et paramètres UTM sont enregistrés encodés dans les journaux du serveur et les exports d’analytics, par exemple
?q=cr%C3%AApe. - Exports et API : certains outils d’e-mailing, webhooks et API stockent les valeurs encodées ; le fichier CSV contient alors des codes au lieu des noms.
- Noms de fichiers : un téléchargement s’appelle
Facture%20H%C3%A9l%C3%A8ne.pdfquand le serveur ne décode pas le nom.
Des codes et des accents cassés à la fois
Parfois le texte est cassé deux fois : %C3%83%C2%A9 est un é encodé en URL, donc un é d’abord mal lu puis encodé. Mojibuster décode d’abord les codes, puis répare le à tilde. À la fin, vous retrouvez é.
L’option Convertir aussi les codes est déjà activée sur cette page. Elle convertit aussi les codes HTML (é), les codes d’e-mail (=C3=A9) et les séquences d’échappement du code informatique (\u00e9). Autres erreurs d’encodage : réparer les caractères UTF-8.
Décoder soi-même dans Excel, JavaScript, Python et PHP
- Excel : seule une fonction d’encodage existe (
ENCODEURLdans la version anglaise), pas de fonction inverse. Le plus simple : copiez la colonne, collez-la ici, puis recopiez le résultat. Voir aussi Excel et les caractères bizarres. - JavaScript :
decodeURIComponent("caf%C3%A9")renvoiecafé. - Python :
urllib.parse.unquote("caf%C3%A9"), ouunquote_pluspour les données de formulaire avec+comme espace. - PHP :
rawurldecode(), ouurldecode()pour les données de formulaire.
Questions fréquentes
Que signifie %C3%A9 ?
C’est le é en encodage URL : les deux octets UTF-8 C3 et A9, chacun précédé d’un %. De même, %C3%A8 correspond à è et %C3%A7 à ç.
Que signifie %20 ?
Une espace. Dans les données de formulaire, on trouve souvent + à la place. Mojibuster laisse le + tel quel, car dans un texte normal il peut s’agir d’un vrai signe plus.
Mes liens sont-ils envoyés ?
Non. La conversion se fait entièrement dans votre navigateur. Les liens contenant des jetons, des adresses e-mail ou d’autres données personnelles ne quittent pas votre appareil.
Pourquoi 100% ne change-t-il pas ?
Mojibuster ne convertit que les suites qui donnent un vrai caractère spécial. 100%, 50 % ou un %20 isolé dans un texte normal restent tels quels.