Zum Inhalt springen

URL-Encoder: Sonderzeichen in URLs kostenlos online escapen

Kostenfreies URL-Zeichenumwandlungstool zum sofortigen Escapen von Sonderzeichen. Wandeln Sie Leerzeichen, Unicode und Symbole in Prozent-kodiertes Format um. Perfekt für APIs, Webformulare und internationale URLs. Jetzt ausprobieren!

URL-Zeichenfolge-Escaper

Ladekalkulator...
📚

Dokumentation

URL-Kodierung: Was sie ist und wie sie funktioniert

URL-Kodierung, auch Prozentkodierung genannt, ist eine Methode, Zeichen in einer Webadresse ausschließlich mit einer kleinen Gruppe sicherer ASCII-Zeichen darzustellen. Dabei wird ein unsicheres Zeichen durch ein %-Zeichen gefolgt von zwei Hexadezimalziffern ersetzt. Dieses Tool zur Maskierung von URL-Zeichenfolgen kodiert Text genauso wie die in JavaScript integrierte Funktion encodeURIComponent.

Warum URLs kodiert werden müssen

Eine URL darf nur eine begrenzte Gruppe von Zeichen enthalten: Buchstaben, Ziffern und einige Satzzeichen. Leerzeichen, Buchstaben mit Akzenten, Zeichen aus nicht-lateinischen Alphabeten sowie Symbole wie & oder = können eine URL beschädigen oder ihre Bedeutung verändern, wenn sie unkodiert darin vorkommen. Ein Leerzeichen in einem Link kann beispielsweise dazu führen, dass ein Browser oder Server die URL als zwei getrennte Teile liest. Die Prozentkodierung ersetzt diese Zeichen durch einen Code, den jeder Browser und jeder Server auf dieselbe Weise lesen kann.

Zeichen, die dieses Tool unverändert lässt

Dieses Tool verändert die folgenden Zeichen nicht. Sie werden direkt übernommen:

  • Groß- und Kleinbuchstaben: A–Z, a–z
  • Ziffern: 0–9
  • Die Satzzeichen - . _ ~ ! * ' ( )

Jedes andere Zeichen wird prozentkodiert, darunter:

  • Das Leerzeichen sowie Satzzeichen wie : / ? # [ ] @ $ & + , ; =
  • Buchstaben mit Akzenten und alle anderen Nicht-ASCII- oder Unicode-Zeichen
  • Ein wörtliches %-Zeichen selbst, das immer zu %25 wird, auch wenn es bereits Teil einer Prozentkodierung war

In einigen allgemeinen Leitfäden zur URL-Syntax werden ! * ' ( und ) zusammen mit anderen Satzzeichen als Zeichen aufgeführt, die in bestimmten Kontexten „möglicherweise kodiert werden müssen“. Dieses spezielle Tool kodiert sie nicht, da es den Regeln von encodeURIComponent folgt, nach denen sie als sicher gelten.

So wird eine prozentkodierte Zeichenfolge berechnet (Formel)

Das Tool prüft jedes Zeichen der Eingabe einzeln und wendet die folgende Regel an:

  1. Wenn das Zeichen zu den oben aufgeführten unveränderten Zeichen gehört, wird es unverändert übernommen.
  2. Andernfalls wird das Zeichen in seine UTF-8-Bytefolge umgewandelt. Buchstaben mit lateinischen Akzenten sowie griechische, kyrillische und arabische Buchstaben verwenden zwei Bytes. Chinesische, japanische und koreanische Zeichen verwenden drei. Emojis verwenden vier.
  3. Jedes Byte wird als zweistellige Hexadezimalzahl geschrieben.
  4. Vor jedes Hexadezimalpaar wird ein % gesetzt.
  5. Die Ergebnisse werden in ihrer ursprünglichen Reihenfolge zu einer kodierten Zeichenfolge verbunden.

Beispiel

Eingabe: Jürgen & Björk

Schrittweise nach Zeichen:

ZeichenErgebnis
JJ (unverändert)
ü%C3%BC (UTF-8-Bytes 0xC3, 0xBC)
rgenrgen (unverändert)
(Leerzeichen)%20
&%26
(Leerzeichen)%20
BjBj (unverändert)
ö%C3%B6 (UTF-8-Bytes 0xC3, 0xB6)
rkrk (unverändert)

Ausgabe: J%C3%BCrgen%20%26%20Bj%C3%B6rk

Ein zweites Beispiel zeigt, wie die unveränderte Zeichengruppe funktioniert. Beim Kodieren der Zeichenfolge -_.!~*'() entsteht -_.!~*'(), also genau derselbe Text, weil jedes Zeichen zur Gruppe der nicht reservierten Zeichen gehört. Beim Kodieren der Zeichenfolge 100% entsteht 100%25, weil das %-Zeichen selbst kein sicheres Zeichen ist.

Eine prozentkodierte Zeichenfolge dekodieren

Beim Dekodieren wird der Vorgang umgekehrt: Jede %XX-Sequenz wird als hexadezimales Byte gelesen, die Bytes werden wieder zu ihrem ursprünglichen UTF-8-Zeichen zusammengefasst, und das Zeichen ersetzt die Sequenz. Beispielsweise wird %C3%BC wieder zu ü dekodiert und %20 zu einem Leerzeichen. Dieses Tool kodiert nur; für die Umkehrung wird ein separates Dekodierungstool benötigt.

Häufige Anwendungsfälle

Prozentkodierung wird überall dort verwendet, wo von einer Person eingegebener Text und nicht von einem Programmierer geschriebener Text Bestandteil einer URL werden soll:

  • Suchfelder, die den Suchbegriff in die Adressleiste übernehmen, etwa ?q=shoes%20%26%20bags
  • Abfrageparameter mit Namen, Adressen oder anderen Benutzerdaten
  • Links zu Seiten mit Titeln in Sprachen, die Buchstaben mit Akzenten oder nicht-lateinische Schriften verwenden
  • API-Anfragen, die Token oder Kennungen als Teil der URL übergeben

Codebeispiele

1// JavaScript
2encodeURIComponent("Jürgen & Björk");
3// "J%C3%BCrgen%20%26%20Bj%C3%B6rk"
4

Pythons quote lässt Buchstaben, Ziffern und - . _ ~ immer unverändert. Die fünf zusätzlichen Zeichen ! * ' ( ) müssen in safe aufgeführt werden, damit das Ergebnis diesem Tool entspricht. Ohne diese Zeichen gibt quote stattdessen %21 %2A %27 %28 %29 zurück.

Geschichte

Die Idee, unsichere Zeichen in einer URL zu kodieren, geht auf RFC 1738 aus dem Jahr 1994 zurück, eines der ersten Dokumente zur Definition des URL-Formats. RFC 3986, veröffentlicht im Jahr 2005, aktualisierte die Regeln und definierte formal die Gruppe der „nicht reservierten“ Zeichen, die nie kodiert werden müssen. encodeURIComponent, die JavaScript-Funktion, auf der dieses Tool basiert, verwendet eine etwas größere Gruppe nicht reservierter Zeichen als RFC 3986: Auch ! * ' ( und ) bleiben unkodiert. Damit folgt die Funktion einer früheren Version der URI-Spezifikation.

Häufig gestellte Fragen

Was ist der Unterschied zwischen URL-Kodierung und URL-Escaping?
Beide Begriffe bezeichnen dasselbe. Gemeint ist jeweils die Prozentkodierung, bei der ein Zeichen durch % gefolgt von zwei Hexadezimalziffern ersetzt wird.

Warum bleiben !, *, ', ( und ) in diesem Tool unverändert?
Dieses Tool verwendet encodeURIComponent, das diese fünf Zeichen als sicher behandelt und genau so übernimmt, wie sie eingegeben wurden. Andere Kodierungsfunktionen und einige Server erwarten möglicherweise trotzdem, dass diese Zeichen kodiert werden. Wenn dadurch ein Problem entsteht, sollte das Zielsystem geprüft werden.

Was ist bei einem Leerzeichen der Unterschied zwischen %20 und +?
Beide stehen für ein Leerzeichen. %20 ist die allgemeine Prozentkodierung für ein Leerzeichen. Das +-Zeichen ist ein Sonderfall, der nur in Daten im Format application/x-www-form-urlencoded verwendet wird, also im Format von HTML-Formularübermittlungen, nicht von diesem Tool.

Dekodiert dieses Tool bereits kodierten Text?
Nein. Es kodiert ausschließlich. Wenn die Eingabe bereits ein %-Zeichen enthält, wird dieses als wörtliches Zeichen behandelt und in der Ausgabe zu %25, anstatt unverändert zu bleiben.

Wie werden nicht-lateinische Zeichen, etwa chinesischer oder arabischer Text, behandelt?
Jedes Zeichen wird zunächst in seine UTF-8-Bytefolge umgewandelt. Anschließend wird jedes Byte prozentkodiert. Ein chinesisches Zeichen verwendet drei Bytes und erzeugt daher drei %XX-Gruppen. Ein arabischer Buchstabe verwendet zwei Bytes und erzeugt daher zwei.

Wann verweigert das Tool die Kodierung von Text?
Nur wenn der Text eine Hälfte eines Surrogatpaars enthält. Ein Surrogatpaar ist der aus zwei Teilen bestehende Code, mit dem ein Zeichen oberhalb von U+FFFF gespeichert wird, etwa ein Emoji. Eine einzelne Hälfte hat keine gültige UTF-8-Darstellung. Daher zeigt das Tool einen Fehler statt eines Ergebnisses an. Durch normales Tippen kann dies nicht entstehen. Ein solches Zeichen stammt normalerweise aus einer abgeschnittenen Kopie oder einem beschädigten Link.

Sollte eine vollständige URL oder nur ein Teil davon kodiert werden?
Es sollten nur die Teile kodiert werden, die Benutzerdaten enthalten, etwa Abfragewerte oder Pfadsegmente. Die Teile, aus denen die Struktur der URL besteht, etwa https:// und der Domainname, sollten nicht kodiert werden. Würde eine vollständige URL mit einem Kodierer für Komponenten kodiert, würden auch die Zeichen :, / und ? in Prozentcodes umgewandelt. Dadurch würde die Adresse beschädigt.

Quellen

  1. RFC 3986 — Einheitlicher Ressourcenbezeichner (URI): Allgemeine Syntax
  2. Prozentkodierung — Wikipedia
  3. MDN — encodeURIComponent()
  4. URL-Standard — WHATWG