Sonderzeichen in der URL? So codieren Sie sie richtig
Aus café wird caf%C3%A9, aus einem Leerzeichen %20 und aus & wird %26: Codieren Sie Text, damit er sicher in einem Link reist, oder decodieren Sie Prozentzeichen zurück in lesbare Wörter, samt Umlauten und anderen Schriften. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- café & té/2?x=1
- Kodierter Wert
- caf%C3%A9%20%26%20t%C3%A9%2F2%3Fx%3D1
Diese Funktion codiert Text nach dem URL-Encoding-Standard oder decodiert eine bereits codierte URL wieder in lesbare Zeichen zurück. Gedacht für alle, die einen Parameter mit Leerzeichen, Umlauten oder Sonderzeichen sicher in einer URL übergeben oder eine unleserliche codierte URL entschlüsseln müssen.
Warum Codierregeln widersprüchlich wirken
Webadressen waren ursprünglich für einen engen Zeichenvorrat gedacht. Die Prozentcodierung wurde festgelegt, damit sie trotzdem beliebige Bytes transportieren können: Leerzeichen, Und-Zeichen, Umlaute und nichtlateinische Schriften. Im Lauf der Jahrzehnte haben sich verschiedene Spezifikationen auseinanderentwickelt, etwa die Regeln für Adressen und die für HTML-Formulare, und die meisten Bibliotheken setzen nur eine davon sauber um. Deshalb behandeln JavaScript und PHP Leerzeichen unterschiedlich, und Pluszeichen oder Tilden fallen je nach Sprache anders aus. Ein einziges falsch gesetztes Und-Zeichen kann eine Weiterleitung still zerstören. Dieser Codierer wendet einen einzigen Regelsatz nach RFC 3986 an, sodass derselbe Text immer dasselbe Ergebnis liefert.
So funktioniert es und wann es Ihnen hilft
Der Codierer geht den Text Byte für Byte durch. Unsichere oder reservierte Zeichen werden zu einem Prozentzeichen mit zwei Hexadezimalziffern, und beim Decodieren werden solche Folgen wieder zu lesbarem Text. Zeichen aus mehreren Bytes, wie sie in Namen, Adressen und internationalen Inhalten vorkommen, werden korrekt behandelt, statt zu Fragezeichen zu werden: Aus é wird %C3%A9, aus einem Leerzeichen %20 und aus einem Und-Zeichen %26. Typische Aufgaben sind das Decodieren von Links aus CSV-Exporten oder alten Datenbanken, das Codieren von Suchbegriffen oder Dateinamen, bevor sie in Weiterleitungslinks landen, und das Lesbarmachen von Adressen aus Serverprotokollen bei der Fehlersuche.
Warum manche Zeichen in einer URL codiert werden müssen
Eine URL darf nur einen begrenzten Zeichensatz direkt enthalten; Leerzeichen, Umlaute, das Und-Zeichen oder ein Fragezeichen innerhalb eines Parameters müssen als Prozent-codierte Bytes dargestellt werden, damit die URL nicht falsch interpretiert wird. Ein Leerzeichen wird so zu „%20“, ein „ä“ zu einer mehrbytigen Prozent-Folge nach UTF-8.
Codieren oder decodieren
Sie fügen einen Text oder Parameter ein und erhalten die codierte Version zurück, bereit für den Einbau in eine URL. Umgekehrt fügen Sie eine codierte URL oder einen codierten Parameter ein und erhalten die lesbare Klartextversion, etwa um zu prüfen, welcher Suchbegriff sich hinter einer langen Prozent-codierten Zeichenfolge in einem Server-Log verbirgt.
Ganze URL oder nur ein Parameter
Für einen einzelnen Wert innerhalb einer Query-Zeichenfolge codieren Sie nach „encodeURIComponent“-Logik, die auch Zeichen wie „&“ und „=“ umwandelt, damit sie den Parameter nicht versehentlich abschneiden. Für eine komplette URL, in der Schrägstriche und Doppelpunkte erhalten bleiben sollen, steht die schonendere Variante zur Verfügung.
Anwendungsfälle
Einen Suchbegriff mit Umlauten in eine URL einbauen
Anna Hoffmann baut einen Link zu einer Produktsuche mit dem Begriff „Größe ändern“ und codiert ihn zuerst, damit die Umlaute in der fertigen URL nicht zu einem fehlerhaften Link führen.
Eine Prozent-codierte URL aus einem Server-Log lesen
Ein Administrator bei der Weber Metallbau GmbH prüft ein Server-Log mit prozent-codierten Anfragen und decodiert eine auffällige Zeile, um den ursprünglichen Suchbegriff zu erkennen.
Häufige Fragen
Was ist der Unterschied zwischen der Codierung eines Parameters und einer ganzen URL?
Bei einem einzelnen Parameter werden auch Zeichen wie „&“ und „=“ codiert, damit sie den Wert nicht versehentlich abschneiden. Bei einer ganzen URL bleiben Schrägstriche und Doppelpunkte dagegen erhalten, damit die URL gültig bleibt.
Wie wird ein Leerzeichen codiert?
Als „%20“ innerhalb eines URL-Pfads oder Parameters; in manchen älteren Kontexten auch als „+“ innerhalb einer Query-Zeichenfolge.
Funktioniert das auch mit Umlauten?
Ja. Umlaute und andere Sonderzeichen werden nach UTF-8 in ihre Prozent-codierte Bytefolge umgewandelt.
Werden meine eingegebenen Werte übertragen?
Nein. Die Umwandlung erfolgt direkt in Ihrem Browser.
Muss ich mich anmelden?
Nein. Es gibt derzeit keine Konten – die Nutzung im Browser ist kostenlos und ohne Limit.
Verwandte Tools
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/dev/url-encode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"a b&c"}'const res = await fetch("https://api.kit.forhosting.com/dev/url-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "a b&c"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/url-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "a b&c"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/url-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"a b&c"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"a b&c"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/url-encode", 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": "a b&c"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.url_encode",
"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.
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. |
Technische Hinweise
Kostenlos, lokal, per API automatisierbar
Die Umwandlung läuft direkt in Ihrem Browser. Für die automatisierte Nutzung, etwa beim Zusammenbauen von URLs in einer Pipeline, steht derselbe Aufruf über die API zur Verfügung, für $0.002 pro Anfrage; im Browser bleibt die Funktion kostenlos.
Integrationsbeispiele
Einen Parameter mit Sonderzeichen für einen API-Aufruf vorbereiten
Ein Entwickler übergibt einen Firmennamen mit einem Und-Zeichen als Query-Parameter und codiert ihn vorab, damit die API-Anfrage nicht am falschen Zeichen abgeschnitten wird.
Technische Fragen
Was kostet die Nutzung über die API?
$0.002 pro Anfrage. Im Browser bleibt die Funktion unabhängig davon kostenlos.