URL-Kodierung Leitfaden: Warum und wie URLs kodiert werden
Haben Sie sich jemals gefragt, warum Leerzeichen in URLs zu %20 und Kaufmanns-Und-Zeichen zu %26 werden? Die URL-Kodierung (auch Prozent-Kodierung genannt) wandelt Zeichen, die für URLs nicht sicher sind, in ein Format um, das Webserver verstehen können.
Warum URL-Kodierung wichtig ist
URLs können nur eine begrenzte Menge an ASCII-Zeichen enthalten. Sonderzeichen, Leerzeichen und Nicht-ASCII-Text müssen kodiert werden, um sicher übertragen zu werden. Ohne Kodierung brechen URLs auf unvorhersehbare Weise — ein Leerzeichen könnte eine URL abschneiden, ein Kaufmanns-Und könnte als Parametertrenner fehlinterpretiert werden.
Testen Sie unseren URL Encoder/Decoder, um zu sehen, wie sich beliebiger Text bei der URL-Kodierung transformiert.
Welche Zeichen müssen kodiert werden?
Sichere Zeichen (keine Kodierung erforderlich)
Buchstaben (A-Z, a-z), Ziffern (0-9) und diese Symbole: -, _, ., ~
Reservierte Zeichen (kodieren, wenn als Daten verwendet)
| Zeichen | Kodiert | Zweck in URLs |
|---|---|---|
: | %3A | Schema-Trenner |
/ | %2F | Pfad-Trenner |
? | %3F | Abfragezeichenketten-Start |
# | %23 | Fragment-Identifikator |
& | %26 | Parameter-Trenner |
= | %3D | Schlüssel-Wert-Trenner |
+ | %2B | Steht oft für Leerzeichen |
@ | %40 | Benutzerinfo-Trenner |
% | %25 | Kodierungsindikator |
Immer kodieren
Leerzeichen (%20), Nicht-ASCII-Zeichen (UTF-8-Bytes kodiert) und jedes Zeichen außerhalb der sicheren Menge.
URL-Kodierung in der Praxis
Abfrageparameter
Der häufigste Anwendungsfall. Beim Erstellen von Such-URLs oder API-Anfragen:
https://api.example.com/search?q=hello%20world&lang=en
Formulardaten
HTML-Formulare mit method="GET" kodieren Feldwerte automatisch als URL. Leerzeichen werden bei der Formularkodierung zu + (leicht anders als die Prozent-Kodierung).
Pfadsegmente
Dateinamen und Ressourcenbezeichner in URL-Pfaden müssen ebenfalls kodiert werden. Eine Datei namens my report.pdf wird in der URL zu my%20report.pdf.
Kodierung in verschiedenen Sprachen
JavaScript:
encodeURIComponent('hello world & more')
// "hello%20world%20%26%20more"
decodeURIComponent('hello%20world')
// "hello world"
Python:
from urllib.parse import quote, unquote
quote('hello world & more')
# 'hello%20world%20%26%20more'
Häufige Fehler
- Doppelte Kodierung — Das Kodieren einer bereits kodierten URL verwandelt
%20in%2520 encodeURIstattencodeURIComponentverwenden —encodeURIüberspringt reservierte Zeichen, die in Abfragewerten wichtig sind+-Zeichen nicht kodieren — In URLs kann+Leerzeichen bedeuten. Kodieren Sie wörtliche Pluszeichen als%2B- Nicht-ASCII vergessen — Unicode-Zeichen benötigen zuerst UTF-8-Kodierung, dann Prozent-Kodierung
Häufig gestellte Fragen
Was ist der Unterschied zwischen encodeURI und encodeURIComponent?
encodeURI kodiert eine vollständige URL und überspringt Zeichen wie :, /, ?, #. encodeURIComponent kodiert alles außer nicht reservierten Zeichen — verwenden Sie es für einzelne Abfrageparameterwerte.
Warum werden Leerzeichen manchmal zu + und manchmal zu %20?
Formularkodierung (application/x-www-form-urlencoded) verwendet + für Leerzeichen. Standard-Prozent-Kodierung verwendet %20. Beide sind in verschiedenen Kontexten gültig.
Verwandte Ressourcen
- Base64-Kodierung erklärt — ein weiteres essentielles Kodierungsschema
- JSON API Design Patterns — APIs bauen, die Kodierung richtig handhaben
- URL Encoder/Decoder — URLs sofort kodieren und dekodieren
- Base64 Encoder — Daten im Base64-Format kodieren
🛠️ Jetzt ausprobieren: URL Encoder/Decoder — 100% kostenlos, alles wird in Ihrem Browser verarbeitet. Keine Daten hochgeladen.