web-dev-qa-db-fra.com

Les URL contenant des caractères UTF8 doivent-elles être codées en HTML?

Je pense aux noms et aux éléments contenant des caractères accentués.

Par exemple, y a-t-il une différence entre:

<a href="http://example.com/thing?name=forêt">link</a>

et

<a href="http://example.com/thing?name=for%C3%AAt">link</a>

?

Les navigateurs gèrent-ils les mêmes? Ou existe-t-il une raison impérieuse d'encoder ces liens?

4
Tom

Les navigateurs gèrent-ils les mêmes?

Oui, tous les navigateurs (modernes) les traitent de la même manière. Dans ce cas, tous les navigateurs (modernes) codent implicitement l’URL (c’est-à-dire un pourcentage) de l’URL si vous ne le faites pas explicitement vous-même dans la source HTML.

Dans les deux cas, le navigateur demande implicitement l'URL codée en pourcentage lorsqu'un utilisateur clique sur le lien. Sélectionnez "Copier l'adresse du lien" dans le menu contextuel du navigateur et copiez l'URL codée en pourcentage dans les deux cas. La lecture de l'attribut href des deux liens à l'aide de JavaScript renvoie l'URL codée en pourcentage.

En fait, je pense que HTML5 autorise les caractères unicode non codés:
https://stackoverflow.com/a/19542940/369434

Un problème potentiel pourrait bien être "les anciens navigateurs". Quel âge je ne sais pas. Mais "vieux" est peut-être trop vieux pour s’inquiéter. (?)

3
MrWhite

Le W3C indique que les adresses URL ne peuvent être envoyées que sur Internet à l'aide du jeu de caractères ASCII. Vous devrez convertir ces personnages en quelque chose. Les gens remplacent souvent les caractères non sécurisés par leur forme% codée. Une référence codée en pourcentage peut être trouvée ici .

Voici la référence: http://www.w3.org/Addressing/URL/4_URI_Recommentations.html

1
genepool99