URL-Kodierung (auch Prozent-Kodierung genannt) ist ein Verfahren zur Kodierung von Informationen in einem Uniform Resource Identifier (URI), sodass im resultierenden String nur von RFC 3986 erlaubte Zeichen vorkommen. Jedes Zeichen, das kein nicht-reserviertes Zeichen ist (A–Z, a–z, 0–9, -, _, ., ~), wird durch ein Prozentzeichen gefolgt von zwei Hexadezimalziffern ersetzt, die den UTF-8-Bytewert des Zeichens darstellen — ein Leerzeichen wird beispielsweise zu %20 und & zu %26.
Prozent-Kodierung ist erforderlich, weil URLs nur eine begrenzte Menge von ASCII-Zeichen enthalten dürfen. Enthält eine URL Zeichen außerhalb dieser Menge — Leerzeichen, Unicode-Buchstaben, Symbole wie &, = oder / als Literalwerte statt als strukturelle Trennzeichen — müssen diese Zeichen kodiert werden, damit der URL-Parser sie nicht falsch interpretiert. Dies ist besonders kritisch bei Query-String-Werten, wo nicht-kodierte & oder = die Parameterstruktur zerstören würden.
Wozu dieses Tool verwenden?
Sofort sehen, wie Text in beiden Modi kodiert wird — mit einem Live-Vergleich nebeneinander, ohne Code schreiben zu müssen, um Grenzfälle zu prüfen.
⚡
Live-Vorschau
Die Ausgabe aktualisiert sich beim Tippen. Verschiedene Eingaben ausprobieren und sofort sehen, welche Zeichen kodiert und welche beibehalten werden.
🔀
Zwei Modi
Zwischen encodeURIComponent (für Werte) und encodeURI (für vollständige URLs) wechseln, ohne die Seite zu verlassen.
🔒
Nur clientseitig
Die gesamte Kodierung läuft lokal im Browser. Vertrauliche Query-Parameter und Tokens gelangen niemals auf einen Server.
📋
Mit einem Klick kopieren
Die kodierte Ausgabe mit einem einzigen Button in die Zwischenablage kopieren. Direkt in Code, Terminal oder Adressleiste einfügbar.
So verwenden Sie diesen URL-Encoder online
Kein Konto, keine Installation. Fügen Sie Ihren Text in das Eingabefeld ein oder tippen Sie ihn ein, und das prozentual kodierte Ergebnis erscheint sofort. Alles läuft in Ihrem Browser — Ihre Daten verlassen nie Ihr Gerät.
1
Text oder URL einfügen
Geben Sie eine beliebige Zeichenkette ein — einen Query-Parameter-Wert, eine vollständige URL, ein Pfadsegment oder eine JSON-Nutzlast. Der Encoder verarbeitet sie Zeichen für Zeichen gemäß RFC 3986.
2
Kodierungsmodus wählen
Wählen Sie encodeURIComponent, um einzelne Parameterwerte zu kodieren (kodiert alles außer nicht reservierten Zeichen). Wählen Sie encodeURI, um eine vollständige URL zu kodieren und dabei strukturelle Zeichen wie ://?#&= beizubehalten.
3
Kodierten Output kopieren
Die prozentual kodierte Zeichenkette erscheint sofort. Klicken Sie auf Kopieren, um das Ergebnis zu übernehmen und es direkt in Ihren API-Aufruf, Ihre Formularaktion oder Konfigurationsdatei einzufügen.
4
Bei Bedarf zurückdekodieren
Fehler gemacht oder Ergebnis überprüfen? Wechseln Sie mit einem Klick zum URL-Decoder-Tool, um die Kodierung rückgängig zu machen.
Welche Zeichen werden kodiert?
RFC 3986 teilt URL-Zeichen in zwei Kategorien: nicht-reservierte Zeichen (niemals kodiert) und reservierte Zeichen (haben besondere Bedeutung — je nach Kontext kodiert oder beibehalten). Die nachstehende Tabelle zeigt, wie die beiden JavaScript-Funktionen mit wichtigen Zeichen umgehen:
Zeichen
Bedeutung in URL
encodeURIComponent
encodeURI
Space
word separator
%20
%20
+
plus sign
%2B
%2B
/
path separator
%2F
/ (kept)
?
query start
%3F
? (kept)
#
fragment
%23
# (kept)
&
param separator
%26
& (kept)
=
param value
%3D
= (kept)
@
auth separator
%40
@ (kept)
:
scheme / port
%3A
: (kept)
%
percent literal
%25
%25
~
unreserved
~ (kept)
~ (kept)
-_.~
unreserved set
kept as-is
kept as-is
encodeURIComponent vs encodeURI
JavaScript stellt zwei Kodierungsfunktionen mit sehr unterschiedlichem Verhalten bereit. Die falsche Wahl zu treffen ist einer der häufigsten Fehler bei der URL-Verarbeitung:
encodeURIComponent()
Kodiert alles außer dem nicht-reservierten Zeichensatz (A–Z a–z 0–9 - _ . ~). Dies ist die richtige Wahl für die Kodierung einzelner Query-Parameter-Werte, Pfadsegmente oder beliebiger Werte, die in eine URL eingebettet werden. Es werden /, ?, #, & und alle anderen reservierten Zeichen kodiert.
encodeURI()
Erhält die gesamte URL-Struktur, indem reservierte Zeichen (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) unkodiert belassen werden. Nur verwenden, wenn eine vollständige URL mit beizubehaltender Struktur vorliegt und lediglich Nicht-ASCII- oder ungültige Zeichen darin kodiert werden müssen.
Typische Anwendungsfälle
Query-String-Parameter
Parameterwerte vor dem Anhängen an eine URL kodieren: name=John%20Doe statt name=John Doe. Nicht-kodierte Leerzeichen und Sonderzeichen führen bei URL-Parsern zu unerwarteten Ergebnissen.
API-Anfragen erstellen
REST-APIs erfordern korrekt kodierte Query-Parameter. Die Kodierung von Werten mit encodeURIComponent verhindert das Einschleusen zusätzlicher Parameter über Zeichen wie & und = in Werten.
Formulardaten übermitteln
HTML-Formulare übermitteln Daten standardmäßig als application/x-www-form-urlencoded. Das Verständnis der Prozent-Kodierung hilft beim Debuggen, was der Browser sendet und was der Server empfängt.
Pfadsegmente mit Sonderzeichen
Dateinamen oder Bezeichner mit Leerzeichen, Schrägstrichen oder Unicode-Zeichen müssen als URL-Pfadsegmente prozent-kodiert werden: /files/my%20document.pdf.
OAuth & Auth-Tokens
OAuth 1.0a und einige Authentifizierungsprotokolle erfordern, dass der Basis-String aus prozent-kodierten Parameternamen und -werten nach einem strengen Normalisierungsalgorithmus aufgebaut wird.
Deep Links & Share-URLs
Beim Erstellen von teilbaren URLs, die Benutzerinhalte einbetten (Suchanfragen, Filterzustand, Koordinaten), alle dynamischen Werte kodieren, um defekte Links und XSS über URL-Manipulation zu verhindern.
Code-Beispiele
URL-Kodierung von Strings in gängigen Sprachen und Umgebungen:
JavaScript (browser / Node.js)
// Encode a query parameter value (most common case)
encodeURIComponent('hello world & more') // → "hello%20world%20%26%20more"
// Encode a complete URL (preserves ://?#& structure)
encodeURI('https://example.com/path?q=hello world') // → "https://example.com/path?q=hello%20world"
// Build a query string safely
const params = new URLSearchParams({ q: 'hello world', lang: 'en' })
const url = `https://example.com/search?${params}` // uses + for spaces
Python
from urllib.parse import quote, urlencode, quote_plus
# Encode a path segment or query value
quote('hello world & more') # → 'hello%20world%20%26%20more'
# Encode for application/x-www-form-urlencoded (space → +)
quote_plus('hello world') # → 'hello+world'
# Build a query string
urlencode({'q': 'hello world', 'lang': 'en'}) # → 'q=hello+world&lang=en'
Node.js (URL API)
const url = new URL('https://example.com/search')
url.searchParams.set('q', 'hello world & more')
url.searchParams.set('lang', 'en')
console.log(url.toString())
// → https://example.com/search?q=hello+world+%26+more&lang=en
Verschiedene Tools können Text prozentual kodieren, unterscheiden sich aber in Kontrolle, Datenschutz und Kontext.
Dieses Tool
Browserbasiert, sofort, privat. Unterstützt sowohl encodeURIComponent als auch encodeURI. Keine Daten werden an Server übertragen. Verarbeitet vollständige Unicode-Eingaben.
Browser-Adressleiste
Browser kodieren URLs beim Einfügen automatisch, aber nur teilweise — viele Sonderzeichen bleiben der Lesbarkeit halber erhalten. Nicht geeignet zum Kodieren von Parameterwerten.
URLSearchParams / urllib
Der richtige programmatische Ansatz zum Erstellen von URLs in JavaScript oder Python. Verwenden Sie dieses Tool für schnelles Enkodieren oder um zu prüfen, was Ihr Code produziert.
Häufig gestellte Fragen
Was ist der Unterschied zwischen %20 und + für Leerzeichen?
Beide stehen für ein Leerzeichen, jedoch in unterschiedlichen Kontexten. %20 ist die standardmäßige prozent-kodierte Darstellung eines Leerzeichens und überall in einer URL gültig. Das Pluszeichen + steht für ein Leerzeichen nur im Format application/x-www-form-urlencoded (HTML-Formularübermittlungen). In einem URL-Pfad oder einem rohen Query-Wert ist + ein wörtliches Pluszeichen, kein Leerzeichen. %20 für maximale Kompatibilität verwenden.
Wann encodeURIComponent vs encodeURI verwenden?
encodeURIComponent für einzelne Werte verwenden (Query-Parameter, Pfadsegmente, Hash-Fragmente). encodeURI nur dann verwenden, wenn eine vollständige URL vorliegt und deren Struktur erhalten bleiben soll. Ein häufiger Fehler ist die Verwendung von encodeURI auf einem Query-Wert — dabei bleiben & und = unkodiert und zerstören den Query-String.
Behandelt URL-Kodierung Unicode-Zeichen?
Ja. Nicht-ASCII-Zeichen werden zunächst in ihre UTF-8-Byte-Darstellung umgewandelt, dann wird jedes Byte prozent-kodiert. Das Eurozeichen € (U+20AC) wird beispielsweise zu %E2%82%AC — seinen drei UTF-8-Bytes. Sowohl encodeURIComponent als auch encodeURI handhaben dies in allen modernen Browsern korrekt.
Ist Doppelkodierung ein Problem?
Ja. Kodiert man einen bereits kodierten String, wird aus %20 der Wert %2520 (das % selbst wird zu %25 kodiert). Immer rohe Werte kodieren, keine bereits kodierten. Im Zweifelsfall zuerst dekodieren, dann neu kodieren.
Welche Zeichen sind in URLs immer sicher?
Die von RFC 3986 definierten nicht-reservierten Zeichen sind immer sicher und müssen nie kodiert werden: Großbuchstaben A–Z, Kleinbuchstaben a–z, Ziffern 0–9, Bindestrich (-), Unterstrich (_), Punkt (.) und Tilde (~). Alles andere sollte prozent-kodiert werden, wenn es als Wert und nicht als strukturelles Trennzeichen verwendet wird.
Warum enthalten manche URLs Großbuchstaben-Hex (%2F) und andere Kleinbuchstaben (%2f)?
Beide sind gültig. RFC 3986 legt fest, dass prozent-kodierte Sequenzen nicht zwischen Groß- und Kleinschreibung unterscheiden, %2F und %2f also gleichwertig sind. Dieselbe RFC empfiehlt jedoch zur Konsistenz die Verwendung von Großbuchstaben. Die meisten Browser und Bibliotheken erzeugen Großbuchstaben.
Kodiert dieses Tool die vollständige URL oder nur die Parameter?
Beides. Verwenden Sie den Modus encodeURIComponent, um einzelne Query-Parameter-Werte zu kodieren (häufigster Anwendungsfall). Verwenden Sie den Modus encodeURI, um eine vollständige URL zu kodieren und dabei strukturelle Zeichen wie ://, ?, # und & beizubehalten.
Gibt es eine Längenbeschränkung für die Kodierung?
Kein serverseitiges Limit — das Tool läuft vollständig in Ihrem Browser. Praktische Grenzen hängen vom Arbeitsspeicher Ihres Browsers ab. Für sehr große Eingaben oder Batch-Verarbeitung verwenden Sie encodeURIComponent in einem Skript.