URL kodieren und dekodieren
Dieses Werkzeug wandelt normalen Unicode-Text in eine Prozentkodierung nach RFC 3986 um und stellt aus gültigen Werten lesbaren Text wieder her.
Im Browser ausführen – kostenlos
Wählen Sie Kodieren, wenn Daten sicher als URL-Bestandteil übertragen werden sollen, oder Dekodieren für Escape-Folgen in Protokollen, Weiterleitungen, Abfragen und kopierten Links. Der Vorgang ist deterministisch, speichert keinen Zustand und weist fehlerhafte Folgen zurück, statt irreführende Ergebnisse zu liefern. Sie können ihn im Browser ausführen oder dasselbe Verhalten per API für $0.002 je Element nutzen.
Wann eine Prozentkodierung erforderlich ist
URLs reservieren Zeichen für ihre Struktur: Schrägstriche trennen Pfadsegmente, Fragezeichen beginnen Abfragen, kaufmännische Und-Zeichen trennen Parameter, Gleichheitszeichen teilen Namen und Werte, und Rauten leiten Fragmente ein. Gehört ein solches Zeichen zu den Daten, darf es nicht mit dieser Struktur verwechselt werden. Die Kodierung wandelt die Eingabe in UTF-8 um und schreibt jedes Byte, das keinem nicht reservierten Zeichen entspricht, als Prozentzeichen mit zwei hexadezimalen Ziffern. Buchstaben, Zahlen, Bindestriche, Punkte, Unterstriche und Tilden bleiben lesbar. Leerzeichen werden zu <code>%20</code>, nicht zu einem Pluszeichen. Reservierte Satzzeichen werden maskiert, da die Eingabe als einzelner Wert und nicht als vollständige URL gilt. Kodieren Sie nur den einzusetzenden Bestandteil; bei einer bereits zusammengesetzten Adresse würden auch deren strukturelle Trennzeichen maskiert.
Wie strenges Dekodieren Ihre Daten schützt
Vor der Ausgabe prüft der Dekoder die gesamte Eingabe. Auf jedes Prozentzeichen müssen genau zwei hexadezimale Ziffern folgen; deshalb führen <code>%</code>, <code>%2</code> und <code>%GG</code> zu einem Eingabefehler. Anschließend müssen die maskierten Bytes gültiges UTF-8 ergeben. Eine scheinbar plausible Folge kann beschädigten Text darstellen; Ersatzzeichen würden diese Beschädigung in Protokollen, Rückrufen oder importierten Datensätzen verbergen. Daher meldet das Werkzeug einen Fehler. Pluszeichen werden nicht in Leerzeichen umgewandelt: Diese Regel gehört zur HTML-Formularkodierung, während hier RFC 3986 gilt. Es findet nur ein Durchlauf statt. <code>%2520</code> wird somit zu <code>%20</code> und nicht zu einem Leerzeichen. Fordern Sie einen zweiten Durchlauf ausdrücklich an, damit keine unbeabsichtigte doppelte Dekodierung erfolgt.
Das Ergebnis sicher weiterverwenden
Wählen Sie den Modus bewusst und übermitteln Sie genau die Zeichenfolge, die einen logischen Wert darstellt. Wenden Sie nach dem Kodieren keinen weiteren URL-Kodierer an, denn eine doppelte Kodierung macht aus jedem Prozentzeichen <code>%25</code>. Behandeln Sie dekodierten Text als Daten und nicht als vertrauenswürdiges Markup, Dateipfad oder Anweisung. Wiederhergestellte Zeichen sind für das nächste Ziel noch nicht inhaltlich validiert. Das ist bei Rückrufparametern, Protokollen, normalisierten Links und Kennungen wichtig. Der Algorithmus nutzt weder Netzwerk noch Zufall, Uhrzeit oder gespeicherten Zustand; gleiche Eingaben liefern gleiche Ausgaben. Der Browser eignet sich für einzelne Untersuchungen, die API für reproduzierbare Prüfungen und Pipelines. Pro Element kostet die API $0.002.
Anwendungsfälle
Abfrageparameter vorbereiten
Kodieren Sie Benutzereingaben, damit Leerzeichen, Und-Zeichen, Unicode und reservierte Satzzeichen in einem Wert bleiben.
Kodierte Protokolle untersuchen
Dekodieren Sie einen erfassten Pfad oder Parameter und erkennen Sie dabei beschädigte Escape-Folgen.
Integrationen prüfen
Erzeugen Sie stabile Testdaten und prüfen Sie, ob Rückrufe, Weiterleitungen und Pipelines genau eine RFC-3986-Schicht dekodieren.
Häufige Fragen
Was kostet eine API-Anfrage?
Jedes Element kostet per API $0.002. Die interaktive Ausführung steht auf der Seite bereit.
Bleiben Schrägstriche und Fragezeichen erhalten?
Nein. Die Eingabe gilt als einzelner Wert, daher werden auch reservierte Satzzeichen prozentkodiert.
Werden Leerzeichen als Pluszeichen kodiert?
Nein. RFC 3986 stellt ein Leerzeichen als %20 dar; die Plusregel gehört zu HTML-Formularen.
Was geschieht bei einer fehlerhaften Escape-Folge?
Der Dekodiermodus meldet ungültige Eingaben bei unvollständigen, nicht hexadezimalen oder ungültigen UTF-8-Folgen.
Dekodiert das Werkzeug mehrmals?
Nein. Jede Anfrage umfasst genau einen Durchlauf; wiederholen Sie ihn nur, wenn eine zweite Schicht beabsichtigt ist.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/web/url-encode-decode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello world/café?x=1","mode":"encode"}'const res = await fetch("https://api.kit.forhosting.com/web/url-encode-decode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello world/café?x=1",
"mode": "encode"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/url-encode-decode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello world/café?x=1",
"mode": "encode"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/url-encode-decode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello world/café?x=1","mode":"encode"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello world/café?x=1","mode":"encode"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/url-encode-decode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "hello world/café?x=1",
"mode": "encode"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.url_encode_decode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
timeout_sec | 30 |
max_crawl_pages | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |