webentwicklung-frage-antwort-db.com.de

Sollen URLs mit UTF8-Zeichen in HTML codiert werden?

Ich denke an Namen und Dinge, die Zeichen mit Akzenten enthalten.

Gibt es einen Unterschied zwischen:

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

und

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

?

Behandeln Browser diese gleich? Oder gibt es einen zwingenden Grund, diese Links zu kodieren?

4
Tom

Behandeln Browser diese gleich?

Ja, alle (modernen) Browser behandeln diese gleich. In allen (modernen) Browsern wird die URL implizit durch URL-Codierung (dh Prozent-Codierung) codiert, wenn Sie dies nicht selbst in der HTML-Quelle explizit codieren.

In beiden Fällen fordert der Browser implizit die prozentual codierte URL an, wenn ein Benutzer auf den Link klickt. Wählen Sie im Kontextmenü des Browsers "Linkadresse kopieren" und kopieren Sie in beiden Fällen die prozentual codierte URL. Wenn Sie das href -Attribut beider Links mit JavaScript lesen, wird die prozentual codierte URL zurückgegeben.

Tatsächlich glaube ich, dass HTML5 nicht codierte Unicode-Zeichen zulässt:
https://stackoverflow.com/a/19542940/369434

Ein potentielles Problem könnten einfach "alte Browser" sein. Wie alt ich weiß nicht. Aber "alt" ist vielleicht zu alt, um sich Sorgen zu machen. (?)

3
MrWhite

Laut W3C können URLs nur mit dem Zeichensatz ASCII über das Internet gesendet werden. Sie müssen diese Zeichen in etwas konvertieren. Menschen ersetzen oft unsichere Zeichen durch ihre% -verschlüsselte Form. Eine prozentcodierte Referenz finden Sie hier .

Hier ist die Referenz: http://www.w3.org/Addressing/URL/4_URI_Recommentations.html

1
genepool99