Anleitung
- Wählen Sie „Codieren“ oder „Decodieren“.
- Wählen Sie „Komponente“ für einen einzelnen Wert (z. B. einen Abfrageparameter) oder „Vollständige URL“ für eine ganze Adresse.
- Geben Sie Ihren Text ein oder fügen Sie ihn ein. Das Ergebnis erscheint sofort rechts (auf Smartphones darunter).
- Kopieren Sie das Ergebnis oder verwenden Sie „Ausgabe als Eingabe übernehmen“, um den Vorgang umzukehren und das Ergebnis zu prüfen.
So funktioniert es
URLs dürfen nur eine begrenzte Anzahl von ASCII-Zeichen enthalten. Alle anderen Zeichen, einschließlich Leerzeichen, Buchstaben mit Akzent und Emojis, werden als Prozent-Escapes dargestellt: Das Zeichen wird in UTF-8-Bytes umgewandelt und jedes Byte durch % gefolgt von zwei hexadezimalen Ziffern dargestellt. Ein Leerzeichen wird zu %20, é zu %C3%A9 und € zu %E2%82%AC.
Der Komponentenmodus verwendet JavaScripts encodeURIComponent und decodeURIComponent. Dabei werden alle Zeichen escaped, die in einer URL eine besondere Bedeutung haben, darunter / ? # & = + : und @. So kann das Ergebnis sicher in einem Abfragewert oder einem einzelnen Pfadsegment verwendet werden. Unverändert bleiben nur A–Z, a–z, 0–9 und - _ . ! ~ * ' ( ).
Der Modus „Vollständige URL“ verwendet encodeURI und decodeURI. Er geht davon aus, dass die Eingabe eine vollständige URL ist, und lässt die reservierten Zeichen ; , / ? : @ & = + $ # unverändert, damit die Adresse weiterhin funktioniert. Beim Decodieren lässt decodeURI auch Escapes dieser reservierten Zeichen unverändert: %2F bleibt %2F, denn eine Umwandlung in / würde die Bedeutung der URL ändern.
Die Option „Formulardaten“ folgt dem Format application/x-www-form-urlencoded, das Browser beim Absenden von HTML-Formularen verwenden: Ein Leerzeichen wird als + statt als %20 geschrieben. Beim Decodieren mit dieser Option wird jedes + zu einem Leerzeichen. Ein tatsächliches Pluszeichen muss dann als %2B geschrieben werden.
Ungültige Eingaben werden niemals verworfen. Wenn auf ein % nicht zwei hexadezimale Ziffern folgen oder eine Folge von Escapes kein gültiges UTF-8 ergibt, zeigt das Tool die Fehlerstelle an und behält Ihren Text bei, damit Sie ihn korrigieren können.
Beispiele
Einen Wert in eine Abfragezeichenfolge einfügen
Um nach „Rock & Roll“ unter https://example.com/search?q=… zu suchen, codieren Sie im Komponentenmodus nur den Wert: Rock%20%26%20Roll. Ohne Codierung würde das & den q-Parameter beenden und einen neuen Parameter namens „ Roll“ beginnen.
Eine URL mit Leerzeichen und Akzenten korrigieren
Im Modus „Vollständige URL“ wird https://example.com/menu/crème brûlée.html zu https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html. Schrägstriche und Doppelpunkt bleiben unverändert, sodass der Link weiterhin funktioniert.
Protokollierte Formulardaten lesen
Ein Serverprotokoll enthält name=Jane+Doe&city=S%C3%A3o+Paulo. Decodieren Sie die Zeichenfolge im Komponentenmodus mit aktivierter Option „+ als Leerzeichen behandeln“, um name=Jane Doe&city=São Paulo zu lesen.
Häufig gestellte Fragen
Was ist der Unterschied zwischen encodeURI und encodeURIComponent?
encodeURIComponent escaped die Zeichen, die URL-Bestandteile voneinander trennen (/ ? # & = + : @ und weitere), und ist daher für einzelne Teile einer URL gedacht. encodeURI lässt diese Zeichen unverändert und ist für vollständige URLs gedacht. encodeURI für einen Abfragewert zu verwenden, ist ein häufiger Fehler: Ein & oder = im Wert würde nicht escaped und die Abfragezeichenfolge beschädigen.
Soll ein Leerzeichen als %20 oder als + dargestellt werden?
Im URL-Pfad wird ein Leerzeichen immer als %20 dargestellt. In einer Abfragezeichenfolge kommen beide Varianten vor: %20 ist überall gültig, während + nur in Formulardaten (application/x-www-form-urlencoded) ein Leerzeichen bedeutet. Dieses Format verwenden HTML-Formulare und viele Server-Frameworks zum Auslesen von Abfragezeichenfolgen. Wenn Sie unsicher sind, verwenden Sie %20.
Warum erhalte ich beim Decodieren eine Fehlermeldung?
Die Decodierung schlägt fehl, wenn auf ein Prozentzeichen kein gültiges Paar aus zwei hexadezimalen Ziffern folgt (zum Beispiel „50% off“) oder die escapten Bytes kein gültiges UTF-8 ergeben. Letzteres bedeutet meist, dass der Text mit einem älteren Zeichensatz wie Latin-1 codiert wurde (é als %E9 statt als %C3%A9). Die Fehlermeldung zeigt die Position des Problems.
Warum wurde %2F im Modus „Vollständige URL“ nicht in einen Schrägstrich umgewandelt?
decodeURI lässt Escapes reservierter Zeichen wie / ? # & und = absichtlich unverändert, da ihre Decodierung die Aufteilung der URL in Bestandteile verändern könnte. Verwenden Sie den Komponentenmodus, um alle Escapes zu decodieren.
Welche Zeichen werden nie codiert?
In beiden Modi bleiben A–Z, a–z, 0–9 und - _ . ! ~ * ' ( ) unverändert. Im Modus „Vollständige URL“ bleiben außerdem ; , / ? : @ & = + $ und # unverändert.
Datenschutz
Kodierung und Dekodierung erfolgen vollständig in Ihrem Browser mit den integrierten JavaScript-Funktionen. Ihre Texte und URLs werden weder hochgeladen noch gespeichert oder in Analysedaten erfasst.