HandyTools Hub
← Zurück

URL-Encoder/Decoder

Kodieren oder dekodieren Sie URLs und URL-Parameter. Schnell, privat und einfach zu verwenden.

Mit einem echten URL-Wert testen

Einen Parameterwert, nicht die ganze URL codieren

Parameterwert

red & blue

Codierter Wert

red%20%26%20blue

Den richtigen Bereich codieren

Für Parameterwerte verwenden Sie encodeURIComponent. Eine ganze URL zu codieren verändert ihre Trennzeichen.

Der URL-Encoder wandelt Text in eine Form um, die sicher in eine URL eingebettet werden kann, und dekodiert prozentkodierte Strings zurück in lesbaren Text. Fügen Sie einen Query-Wert mit Leerzeichen, Ampersand oder chinesischen Zeichen ein und erhalten Sie ein gültiges, kopierfertiges Ergebnis. Er ist ein tägliches Werkzeug für alle, die Links, API-Aufrufe oder Tracking-URLs bauen, und für alle, die eine URL aus einem Log oder Analysebericht lesen wollen, in dem alles unter Prozentzeichen begraben ist.

Kodieren vs. Dekodieren

  • Der Kodier-Modus wandelt lesbaren Text in prozentkodierte Ausgabe um.
  • Der Dekodier-Modus kehrt den Vorgang um und macht Prozent-Escapes wieder zu Zeichen.
  • Tippen Sie in das linke Feld, erscheint das Ergebnis rechts während der Eingabe; die Kopieren-Schaltfläche legt es in die Zwischenablage.
  • Die Dekodierrichtung nutzt die passende native Funktion für den gewählten Typ, sodass Kodieren und anschließendes Dekodieren desselben Strings den Originaltext zurückgibt.

encodeURIComponent vs. encodeURI

Die beiden Typen verhalten sich bei reservierten Zeichen unterschiedlich. Genau diese Unterscheidung verursacht die meisten URL-Fehler.

EingabeParameterwert (encodeURIComponent)Vollständige URL (encodeURI)
a b&c=da%20b%26c%3Dda%20b&c=d
https://x.com/p?a=1https%3A%2F%2Fx.com%2Fp%3Fa%3D1https://x.com/p?a=1
中%E4%B8%AD%E4%B8%AD
a+ba%2Bba+b

Der Parameterwert-Modus behandelt die Eingabe als Daten und maskiert daher &, =, /, ? und :, die sonst die Bedeutung der URL ändern würden. Der Vollständige-URL-Modus behandelt die Eingabe als URL und bewahrt diese Strukturzeichen; kodiert werden nur Leerzeichen und Nicht-ASCII-Text. Den falschen Modus zu wählen, ist die übliche Ursache für einen Link, der einen Parameter stillschweigend in zwei aufteilt.

Warum URLs Prozentkodierung brauchen

URLs wurden um einen kleinen ASCII-Zeichensatz herum entworfen, und mehrere dieser Zeichen haben strukturelle Bedeutung: ? beginnt die Query, & trennt Parameter, = weist einen Wert zu, und # beginnt ein Fragment. Jedes Zeichen außerhalb des sicheren Satzes – Leerzeichen, Anführungszeichen, Klammern und die gesamte nicht-ASCII-Welt – muss als Prozentzeichen gefolgt vom hexadezimalen UTF-8-Bytewert dargestellt werden. Nicht-ASCII-Text wird nach der UTF-8-Konvertierung Byte für Byte kodiert, weshalb ein chinesisches Zeichen zu drei Prozent-Tripletts wird. Die Kodierung ist umkehrbar und rein mechanisch, weshalb ein Decoder den Originaltext immer zurückgewinnen kann, solange der String wohlgeformt ist.

Praxisbeispiele

  1. Den Wert coffee & tea für einen Query-Parameter kodieren. Der Parameterwert-Modus ergibt coffee%20%26%20tea, das Sie sicher als ?q=coffee%20%26%20tea anhängen können. Der Vollständige-URL-Modus würde das & belassen und Ihren Wert in zwei Parameter aufteilen.
  2. Den vollständigen Link https://example.com/search?q=a b&lang=en kodieren. Der Vollständige-URL-Modus ergibt https://example.com/search?q=a%20b&lang=en und bewahrt Schema, Pfad und Query-Trenner, während nur das Leerzeichen maskiert wird.
  3. 中文 kodieren. Beide Modi liefern %E4%B8%AD%E6%96%87, ein Prozent-Triplett pro UTF-8-Byte. Das Dekodieren dieses Strings ergibt 中文.
  4. Das Emoji 😀 (U+1F600) kodieren. Seine UTF-8-Bytes sind F0 9F 98 80, die Ausgabe lautet also %F0%9F%98%80.
  5. %E4%B8%AD%E6%96%87 im Parameterwert-Modus dekodieren, um 中文 zu erhalten, oder einen teilweise kodierten Link dekodieren, um zu prüfen, wohin eine Weiterleitung tatsächlich zeigte.

Warum Leerzeichen und Pluszeichen sich unterscheiden

Beide Funktionen erzeugen %20 für ein Leerzeichen, und beide belassen ein wörtliches + im Vollständige-URL-Modus als + oder kodieren es im Parameterwert-Modus zu %2B. Der verwirrende Fall ist die Formularkodierung: GET-Übermittlungen von HTML-Formularen und application/x-www-form-urlencoded-Payloads verwenden + für ein Leerzeichen. Kommt ein Wert aus einem Formular und enthält +, wird dieses Tool ihn nicht in ein Leerzeichen verwandeln – erst dekodieren, dann Pluszeichen manuell ersetzen. Die beiden Konventionen auseinanderzuhalten, ist die häufigste Quelle der Verwirrung „mein Suchbegriff wurde zu coffee+tea“.

Reservierte vs. nicht reservierte Zeichen

RFC 3986 teilt URL-Zeichen in nicht reservierte und reservierte Mengen. Nicht reservierte Zeichen – Buchstaben, Ziffern, Bindestrich, Unterstrich, Punkt und Tilde – müssen nie kodiert werden. Reservierte Zeichen zerfallen in zwei Gruppen: gen-delims wie :, /, ?, #, [ und @, die die Teile einer URL trennen, und sub-delims wie !, $, &, ', (, ), *, +, ,, ; und =, die innerhalb dieser Teile Bedeutung haben. Wird ein reserviertes Zeichen als Daten statt als Trenner verwendet, muss es prozentkodiert werden. Genau das ist die Aufgabe des Parameterwert-Modus, während der Vollständige-URL-Modus für Strings gedacht ist, in denen die reservierten Zeichen noch als Trenner wirken.

Häufige Fehler

  • Eine ganze URL mit dem Parameterwert-Modus kodieren und ihre ://, ?- und &-Trenner zerstören.
  • Einen Query-Wert mit dem Vollständige-URL-Modus kodieren und & oder = als Trenner wirken lassen.
  • Doppelkodierung, die %25 hinzufügt und sichtbar falsche Ausgaben wie %2520 erzeugt, wo ein Leerzeichen erwartet wurde.
  • Annehmen, !, ', (, ) und * würden immer maskiert. Der Parameterwert-Modus belässt sie, sodass ein strikt RFC-3986-konformes System das Ergebnis weiterhin ablehnen kann.
  • Einen teilweise kodierten String dekodieren, bei dem ein einzelnes % sofort einen Fehler auslöst statt eines Teilergebnisses.
  • Die beiden Modi für austauschbar halten, weil sie bei einfachem ASCII übereinstimmen. Sie divergieren in dem Moment, in dem der Text ein reserviertes Zeichen enthält.

Verwandte Tools

Häufig gestellte Fragen

Wann sollte ich den Parameterwert-Modus statt des Vollständige-URL-Modus verwenden?

Den Parameterwert-Modus (encodeURIComponent) für einen einzelnen Wert nutzen, den Sie nach einem ? oder & platzieren, weil er auch reservierte Zeichen wie &, = und / maskiert, die sonst als Trenner gelesen würden. Den Vollständige-URL-Modus (encodeURI) nur verwenden, wenn Sie eine komplette URL kodieren und ihre Struktur intakt halten müssen.

Warum wird ein Leerzeichen zu %20 und nicht zu einem Pluszeichen?

Dieses Tool folgt den Kodierregeln von JavaScript, und encodeURIComponent wie encodeURI stellen ein Leerzeichen als %20 dar. Die Konvention Plus-statt-Leerzeichen stammt aus der Übermittlung von HTML-Formularen (application/x-www-form-urlencoded), nicht von diesen Funktionen.

Wird beim Dekodieren ein Pluszeichen zu einem Leerzeichen?

Nein. decodeURIComponent lässt ein wörtliches + unverändert und macht %20 zu einem Leerzeichen. Haben Sie einen formularcodierten Query-String, in dem + ein Leerzeichen bedeutet, ersetzen Sie die Pluszeichen nach dem Dekodieren manuell durch Leerzeichen.

Warum erhalte ich bei manchen Strings den Fehler „Dekodierung fehlgeschlagen“?

Ein einzelnes Prozentzeichen oder eine abgeschnittene Sequenz wie %E4 ist keine gültige Prozentkodierung, daher wirft der native Decoder einen URIError. Suchen Sie nach verirrten %-Zeichen oder nach Text, der nur teilweise kodiert wurde.

Warum fügt das erneute Kodieren eines bereits kodierten Werts %25 hinzu?

Das Prozentzeichen selbst wird als %25 kodiert, daher ergibt das Kodieren von %20 erneut %2520. Das ist der Doppelkodierungsfehler, und er tritt meist auf, wenn ein Wert in einer Weiterleitungskette oder Vorlage zweimal durch einen Encoder läuft.

Welche Zeichen bleiben in jedem Modus unmaskiert?

Beide Modi belassen die nicht reservierte Menge A-Z, a-z, 0-9, -, _, . und ~. Der Parameterwert-Modus belässt zusätzlich !, ', (, ) und *. Der Vollständige-URL-Modus bewahrt darüber hinaus die reservierten Zeichen, die einer URL ihre Struktur geben, etwa :, /, ?, #, &, = und +.

Geprüft vom HandyTools-Hub-Team · Zuletzt aktualisiert