Zum Inhalt springen
Quaestio

URL-Kodierung

Kodieren Sie Text, der in eine Webadresse soll, oder machen Sie aus einer kodierten Adresse lesbaren Text.

0 Zeichen · 0 Bytes

Ergebnis

Schreiben Sie etwas in das Feld oben.

Als Einzelteil werden auch Schrägstrich und Fragezeichen kodiert. Ohne Haken bleibt der Aufbau der Adresse erhalten, und nur unerlaubte Zeichen werden kodiert.

Einbetten

Werkzeug auf Ihrer Website einbetten

Kopieren Sie den Code und fügen Sie ihn dort ein, wo das Werkzeug erscheinen soll, etwa in einem Blogbeitrag oder auf einer Schulseite. Es ist kostenlos, der Rahmen enthält keine Werbung, und das Werkzeug rechnet im Browser der Besucher.

So funktioniert es

Webadressen dürfen nur einen begrenzten Satz Zeichen enthalten. Alles andere wird als Prozentzeichen gefolgt vom hexadezimalen Wert des Zeichens geschrieben, und deshalb wird aus einem Leerzeichen %20.

Der Unterschied zwischen den beiden Modi ist, was als Struktur gilt. Wenn Sie ein Einzelteil kodieren, werden auch Schrägstrich, Fragezeichen und Gleichheitszeichen kodiert, weil sie sonst als Teile der Adresse gelesen würden.

Wenn Sie eine ganze Adresse kodieren, bleiben diese Zeichen stehen, damit der Aufbau der Adresse erhalten bleibt. Diesen Modus nehmen Sie für eine fertige Adresse, die nur einzelne Zeichen enthält, die kodiert werden müssen.

Wählen Sie bei einem Parameter den falschen Modus, kann der Empfänger den Wert als mehrere Parameter lesen. Soll ein Wert hinter ein Gleichheitszeichen, gehört er fast immer als Einzelteil kodiert.

Das Pluszeichen ist eine Falle: Im Abfrageteil einer Adresse bedeutet Plus historisch ein Leerzeichen, im Pfad dagegen ein echtes Pluszeichen.

Die Funktionen hinter den Modi

Als Einzelteil kodiert das Werkzeug mit den JavaScript-Funktionen encodeURIComponent und decodeURIComponent, als ganze Adresse mit encodeURI und decodeURI, alle vier im ECMAScript-Standard festgelegt. Jedes zu kodierende Zeichen wird zuerst in UTF-8 umgewandelt, und jedes Byte wird als Prozentzeichen mit zwei Hexadezimalziffern geschrieben. Als Einzelteil wird Kaffee & Kuchen 5 € deshalb zu Kaffee%20%26%20Kuchen%205%20%E2%82%AC, wobei das Eurozeichen drei Bytes belegt. Als ganze Adresse bleibt das Und-Zeichen stehen: Kaffee%20&%20Kuchen%205%20%E2%82%AC. Ein Zeichen, das sich nicht in UTF-8 schreiben lässt, etwa eine einzelne Hälfte eines Surrogatpaars nach einem missglückten Kopieren, ergibt eine Fehlermeldung statt eines Ergebnisses.

Zeichen, die nie kodiert werden

ECMAScript lässt in beiden Modi die Buchstaben A bis Z und a bis z, die Ziffern, Unterstrich, Bindestrich, Punkt, Ausrufezeichen, Tilde, Sternchen, Apostroph und runde Klammern unkodiert. RFC 3986 zählt nur Bindestrich, Punkt, Unterstrich und Tilde zu den nicht reservierten Zeichen; Ausrufezeichen, Apostroph, Klammern und Sternchen gehören zu den reservierten Trennzeichen und können in manchen Adressen eine Bedeutung tragen.

Als ganze Adresse bleiben zusätzlich Semikolon, Schrägstrich, Fragezeichen, Doppelpunkt, At-Zeichen, Und-Zeichen, Gleichheitszeichen, Plus, Dollar, Komma und Raute stehen. Eckige Klammern werden dagegen kodiert, eine IPv6-Adresse in einer URL wie http://[::1]:8080/ wird also zu http://%5B::1%5D:8080/.

Pluszeichen und Formulare

Formulare werden als application/x-www-form-urlencoded kodiert, wobei der URL Standard der WHATWG ein Leerzeichen als Pluszeichen schreibt und zusätzlich Ausrufezeichen, Apostroph, Klammern und Tilde kodiert. Das Werkzeug schreibt immer %20, und beim Dekodieren wird ein Plus nicht zum Leerzeichen: a+b bleibt a+b. Stammt der Text aus einem Formular, ersetzen Sie die Pluszeichen zuerst durch Leerzeichen.

Fehler beim Dekodieren

Dekodieren setzt gültiges UTF-8 voraus. %FC, das in der älteren Kodierung Latin-1 für ü steht, ergibt die Fehlermeldung, während %C3%BC zu ü wird. Ein Prozentzeichen, auf das keine zwei Hexadezimalziffern folgen, wie in a%zz, ist ebenfalls ein Fehler. Als ganze Adresse bleiben kodierte Trennzeichen stehen: a%2Fb bleibt a%2Fb, weil ein dekodierter Schrägstrich den Aufbau der Adresse ändern würde.

Quellen

So werden die Werkzeuge geprüft