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