RevealTheme logo

URL-Codierer und -Decodierer

Wandeln Sie Text in eine URL-sichere Codierung (Prozent-Codierung) und zurück um. Nützlich für Query-Strings, Weiterleitungen und OAuth-Flows.

Was ist URL-Codierung und wann brauchen Sie sie?

URL-Codierung (auch «Prozent-Codierung», spezifiziert in RFC 3986) ist der Prozess, Zeichen, die in URLs eine besondere Bedeutung haben – oder Zeichen, die in URLs schlicht unsicher sind – in eine hexadezimale Escape-Sequenz '%XX' umzuwandeln. Die URL-Spezifikation reserviert bestimmte Zeichen mit struktureller Bedeutung: '?' beginnt den Query-String, '#' beginnt das Fragment, '&' trennt Query-Parameter, '/' trennt Pfadsegmente usw. Enthält die Nutzereingabe eines dieser Zeichen und Sie betten es unverändert in eine URL ein, interpretiert der Parser es falsch. Die URL-Codierung verhindert das, indem sie jedes reservierte oder unsichere Zeichen durch seine hexadezimale Byte-Darstellung mit vorangestelltem '%' ersetzt. Ein Leerzeichen wird zu %20, '&' zu %26, '=' zu %3D. Nicht-ASCII-Zeichen (Kyrillisch, Chinesisch, Emojis) werden in UTF-8-Mehrbyte-Sequenzen umgewandelt, wobei jedes Byte prozent-codiert wird. Browser erledigen das automatisch, wenn Sie auf einen Link klicken, aber immer wenn Sie eine URL per Code erstellen – beim Aufbau einer Suchanfrage, eines Weiterleitungsziels, eines OAuth-Callbacks oder einer Webhook-Signatur – müssen Sie die vom Nutzer bereitgestellten Werte zuerst codieren. Dieses Tool verwendet dieselben Funktionen encodeURIComponent / decodeURIComponent, die auch Ihr JavaScript-Code verwenden würde, sodass das Verhalten exakt der Produktion entspricht.

Häufige Anwendungsfälle

  • Codieren Sie Suchbegriffe von Benutzern, bevor Sie sie an eine Such-URL anhängen (?q=user+input).

  • Übergeben Sie einen OAuth-redirect_uri-Parameter sicher an einen Autorisierungsserver.

  • Konstruieren Sie Webhook-URLs, die codierte JSON-Payloads in der Query-Zeichenkette enthalten.

  • Codieren Sie eine 'returnTo'-URL, damit sie das Durchreichen durch andere URLs übersteht.

  • Decodieren Sie die codierten Werte, die Sie nach dem Absenden eines Formulars in der Adressleiste des Browsers sehen.

  • Testen Sie, wie eine fehlerhafte URL geparst wird – codieren Sie ein Sonderzeichen und sehen Sie, was passiert.

Häufig gestellte Fragen

Wann sollte ich eine URL codieren?
Codieren Sie immer die vom Nutzer bereitgestellten Werte, bevor Sie sie in eine URL einfügen: Query-Parameter, Pfadsegmente oder Fragmente. Das Nicht-Codieren ist eine der häufigsten Ursachen für subtile Fehler: Der Wert 'Katzen & Hunde' bricht einen Query-String, bis er als 'Katzen%20%26%20Hunde' codiert wird.
Was ist der Unterschied zwischen encodeURI und encodeURIComponent?
encodeURI ist für vollständige URLs: Es lässt strukturelle Zeichen wie '/', '?', '&', '=' unangetastet, weil sie in einer URL Bedeutung haben. encodeURIComponent ist für URL-Teile (Query-Werte, Pfadsegmente): Es codiert alles, was nicht alphanumerisch ist. Verwenden Sie encodeURIComponent für einzelne Query-Werte; verwenden Sie nie encodeURI auf einem vom Nutzer bereitgestellten Query-Wert (es maskiert '&' nicht und bricht Ihren Query-String).
Was ist URL-sicheres Base64 gegenüber URL-Codierung?
Das sind unterschiedliche Konzepte. Die URL-Codierung (dieses Tool) ersetzt Sonderzeichen Zeichen für Zeichen. URL-sicheres Base64 ist eine Base64-Variante, die '-' und '_' statt '+' und '/' verwendet, sodass das Ergebnis ohne zusätzliche Codierung bereits URL-sicher ist.
Warum wird '+' manchmal als Leerzeichen decodiert?
In application/x-www-form-urlencoded (Formular-Übermittlungen) ist '+' die Kurzform für ein Leerzeichen. Die meisten Decoder bewahren das. Beim modernen URI-Parsing ist '%20' die korrekte Codierung des Leerzeichens. decodeURIComponent behandelt '+' als wörtliches '+'; verwenden Sie decodeURI oder einen Formular-Decoder, um '+' in ein Leerzeichen umzuwandeln.
Wie werden Nicht-ASCII-Zeichen codiert?
Sie werden zuerst in UTF-8-Bytes umgewandelt und dann wird jedes Byte prozent-codiert. So wird aus 'café' 'caf%C3%A9': 'é' sind zwei UTF-8-Bytes (0xC3 0xA9). Dieses Tool verarbeitet UTF-8 korrekt; einige ältere Tools codieren mit Latin-1, was eine andere Ausgabe ergibt.
Ist URL-Codierung dasselbe wie HTML-Entity-Codierung?
Nein. URL-Codierung (%XX) maskiert Zeichen für URLs. HTML-Entity-Codierung (&, <) maskiert Zeichen für HTML-Markup. Die Kontexte sind unterschiedlich; das eine im Kontext des anderen zu codieren, ist ein häufiger XSS-Fehler.

Verwandte Tools