URL-Encoder/Decoder

Kodieren Sie Sonderzeichen für URLs oder dekodieren Sie prozentcodierte URL-Strings. Unverzichtbar für Webentwicklung und API-Arbeit.

Anleitung

  1. Geben Sie Ihren Text oder Ihre URL in den Eingabebereich ein oder fügen Sie sie ein
  2. Klicken Sie auf Kodieren, um Sonderzeichen prozentual zu kodieren, oder auf Dekodieren, um zurückzukonvertieren
  3. Kopieren Sie das Ergebnis zur Verwendung in Ihrer Anwendung

Häufig gestellte Fragen

  • Was ist URL-Kodierung?

    URL-Kodierung (auch Prozentkodierung genannt) ersetzt Sonderzeichen durch ein Prozentzeichen gefolgt von ihrem Hexadezimalwert. Zum Beispiel wird ein Leerzeichen zu %20.

  • Wann sollte ich URL-Kodierung verwenden?

    Kodieren Sie URLs, wenn Sie Sonderzeichen in URL-Parametern, Abfragezeichenfolgen oder Formulardaten einfügen, die per HTTP gesendet werden.

  • Was ist der Unterschied zwischen encodeURI und encodeURIComponent?

    encodeURI kodiert einen vollständigen URI und bewahrt Zeichen wie :, / und ?. encodeURIComponent kodiert alles außer Buchstaben, Ziffern und einigen Sonderzeichen und eignet sich daher zum Kodieren einzelner Parameterwerte.

  • Werden Unicode-Zeichen unterstützt?

    Ja, Unicode-Zeichen werden zunächst in UTF-8-Bytes kodiert, dann wird jedes Byte prozentual kodiert.

URL-Kodierung: Warum URLs so aussehen

Wer schon einmal eine URL mit %20 oder %C3%BC gesehen hat, ist der URL-Kodierung begegnet. Diese Prozentcodierung (Percent-Encoding) ist kein Fehler, sondern ein notwendiger Standard, der das Web funktionsfähig macht.

Das Problem: Sonderzeichen in URLs

URLs dürfen nach dem RFC 3986-Standard nur einen bestimmten Zeichensatz verwenden: die 26 lateinischen Buchstaben (groß und klein), die Ziffern 0–9 sowie einige Sonderzeichen wie -, _, . und ~. Alle anderen Zeichen müssen kodiert werden.

Besonders kritisch sind Zeichen, die in URLs eine strukturelle Bedeutung haben:

  • ? leitet die Query-String-Parameter ein
  • & trennt Parameter voneinander
  • = verbindet Schlüssel und Wert
  • # markiert den Anker (Fragment)
  • / trennt URL-Pfadsegmente

Wenn ein Parameter selbst eines dieser Zeichen enthält — z.B. eine URL als Wert — muss es kodiert werden, damit die URL korrekt geparst wird.

Wie Prozentcodierung funktioniert

Jedes kodierungspflichtige Zeichen wird durch % gefolgt von seinem zweistelligen Hexadezimalwert ersetzt. Ein Leerzeichen hat den ASCII-Code 32, hexadezimal 20 — daher %20. Ein ü (U+00FC) wird in UTF-8 als zwei Bytes 0xC3 0xBC kodiert, was zu %C3%BC wird.

encodeURI vs. encodeURIComponent: Der wichtige Unterschied

JavaScript bietet zwei eingebaute Funktionen zur URL-Kodierung, die unterschiedliche Zwecke haben:

encodeURI()

Kodiert eine vollständige URL und lässt Zeichen unberührt, die in einer URL strukturelle Bedeutung haben: :, /, ?, &, =, #, @. Beispiel:

encodeURI("https://example.com/suche?q=hallo welt")
→ "https://example.com/suche?q=hallo%20welt"

encodeURIComponent()

Kodiert einen einzelnen URL-Parameter-Wert und kodiert dabei auch strukturelle Zeichen wie ?, &, = und /. Sollte immer für einzelne Query-String-Werte verwendet werden:

encodeURIComponent("Preis: 5€ & mehr")
→ "Preis%3A%205%E2%82%AC%20%26%20mehr"

Die goldene Regel

  • Ganze URL kodieren: encodeURI()
  • Einzelnen Parameter-Wert kodieren: encodeURIComponent()

Formulardaten und application/x-www-form-urlencoded

HTML-Formulare mit method="POST" übertragen Daten standardmäßig im Format application/x-www-form-urlencoded. Dabei gelten ähnliche Regeln wie bei URL-Kodierung, mit einem Unterschied: Leerzeichen werden als + kodiert, nicht als %20. Das kann bei manueller Verarbeitung von Formulardaten zu Verwirrung führen.

Warum Unicode in URLs immer UTF-8 bedeutet

Moderne Browser und Server kodieren nicht-ASCII-Zeichen in URLs immer als UTF-8-Bytes, dann prozentcodiert. Das bedeutet, dass ein Umlaut wie ä stets als %C3%A4 erscheint — unabhängig von der Zeichenkodierung der HTML-Seite. Diese Konvention ist im WHATWG URL-Standard festgelegt und sorgt für konsistentes Verhalten weltweit.