Peut les url ont des caractères UTF-8?
J'étais curieux de savoir si je doit coder les url avec l'ASCII ou UTF-8. J'étais en vertu de la croyance que les url ne peut pas avoir des caractères non-ASCII, mais quelqu'un m'a dit qu'ils peuvent avoir de l'UTF-8, et j'ai cherché partout et n'arrive pas à trouver lequel est le vrai. Personne ne sait?
double possible de des caractères Unicode dans les URLs
OriginalL'auteur Popcorn | 2014-03-12
Vous devez vous connecter pour publier un commentaire.
Il y a deux parties, mais ils ont tous les deux montant de "oui".
Avec IDNA, il est possible d'enregistrer des noms de domaine utilisant le répertoire Unicode (avec quelques petits rebondissements pour éviter les ambiguïtés et les abus).
Le chemin d'accès n'est pas strictement réglementé, mais il est possible de coder des chaînes arbitraires dans le chemin. Le navigateur pourrait opter pour afficher une lisible par l'homme, le rendu plutôt qu'un chemin encodés. Cependant, cela nécessite des méthodes heuristiques, comme il n'y a aucun moyen de spécifier le jeu de caractères et encodage de la trajectoire.
Donc, http://xn--msic-0ra.example/mot%C3%B6rhead est un (exemple fictif, pas tout à fait correct) lisible par ordinateur encodée URL, ce qui pourrait être affiché à l'utilisateur que http://müsic.example/motörhead. Le nom de domaine est codé comme
xn--msic-0ra.example
dans quelque chose qui s'appelle Punycode, et le chemin d'accès contient l'étiquette de "motörhead" UTF-8, et l'URL encodée (le point de code Unicode U+00F6 est reprecented avec les deux octets 0xC3 0xB6 en UTF-8).Le chemin peut aussi être
mot%F6rhead
qui est la même étiquette en Latin-1. Dans ce cas, déduire raisonnablement lisible par l'homme, la représentation serait beaucoup plus difficile, mais peut-être que le contexte entourant les personnages pourraient offrir assez de conseils pour une bonne estimation.Dans l'isolement,
%F6
pouvait être à peu près n'importe quoi, et%C3%B6
pourrait être par exemple UTF-16.En fait ils ont tous les deux montant de "non". Ni domaines, ni d'Url peut contenir tous les caractères non-ASCII. Cependant, il existe des moyens pour coder arbitraire de caractères ASCII (pour cent d'encodage et de punycode)...
+1 @deceze (-: Bien, oui. Url canonique ne contiennent pas Unicode. Mais l'IDNA effort, en particulier, est très sur la définition et l'activation d'un homme convivial semi-représentation canonique.
OriginalL'auteur tripleee