Was ist URL-Codierung? Eine vollständige Erklärung der Prozent-Codierung
Schnelle Antwort
Die URL-Kodierung (Prozentkodierung) ersetzt unsichere Zeichen in einem URL durch % gefolgt von zwei Hexadezimalziffern. Beispielsweise wird Leerzeichen zu %20 und & zu %26. Es stellt sicher, dass URLs eindeutig übertragen werden kann. Verwenden Sie zum Konvertieren in Ihrem Browser unseren kostenlosen URL Encoder und Decoder.
Einführung
Die URL-Kodierung, auch Prozentkodierung genannt, ist ein Mechanismus zum Kodieren von Sonderzeichen in einem URL, damit sie sicher über das Internet übertragen werden können. URLs kann nur einen begrenzten Satz von ASCII-Zeichen enthalten – Buchstaben, Ziffern und einige reservierte Zeichen. Alle anderen Zeichen (Leerzeichen, Anführungszeichen, Nicht-ASCII-Buchstaben) müssen als Prozentzeichen (%) gefolgt von zwei hexadezimalen Ziffern codiert werden, die den Bytewert des Zeichens darstellen. Die URL-Kodierung ist in RFC 3986 definiert.
Schritt für Schritt
-
Verstehen Sie, welche Zeichen kodiert werden müssen
Nicht reservierte Zeichen (A-Z, a-z, 0-9, -, _, ., ~) benötigen keine Kodierung. Reservierte Zeichen (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) haben in URLs eine besondere Bedeutung und sollten bei der Verwendung als Daten codiert werden. Alle anderen Zeichen (Leerzeichen, Anführungszeichen, Nicht-ASCII) müssen codiert werden.
-
Lernen Sie den Kodierungsmechanismus kennen
Jedes Zeichen, das kodiert werden muss, wird in seine UTF-8-Bytesequenz konvertiert, dann wird jedes Byte als %XX dargestellt, wobei XX der Hexadezimalwert ist. Leerzeichen (0x20) → %20. Das Nicht-ASCII-Zeichen „é“ (UTF-8: 0xC3 0xA9) → %C3%A9.
-
Unterscheiden Sie zwischen encodeURI und encodeURIComponent
encodeURI() kodiert einen vollständigen URL, behält aber reservierte Zeichen (:/?&=) bei, die Teil der URL-Struktur sind. encodeURIComponent() kodiert alles außer nicht reservierten Zeichen – verwenden Sie es für Abfrageparameterwerte, bei denen es sich bei reservierten Zeichen um Daten und nicht um Strukturen handelt.
-
Prozentcodiertes URLs dekodieren
Durch die Dekodierung wird die Kodierung umgekehrt: %20 → Leerzeichen, %C3%A9 → é. Verwenden Sie decodeURI() für vollständiges URLs und decodeURIComponent() für Abfrageparameterwerte. Ungültige Escape-Sequenzen (wie %ZZ) lösen Fehler aus.
Beispiele
Kodieren Sie ein Leerzeichen
Eingang: hello world
Ausgabe: hello%20world
Codieren Sie Nicht-ASCII-Text
Eingang: café
Ausgabe: caf%C3%A9
Codieren Sie einen Abfrageparameterwert
Eingang: name=John Doe & Co.
Ausgabe: name%3DJohn%20Doe%20%26%20Co.
Häufige Probleme
- Kodieren des gesamten URL, wenn nur Werte kodiert werden müssen – Abfrageparameterwerte kodieren, nicht die URL-Struktur (://?&=).
- Doppelte Kodierung – wenn ein URL bereits kodiert ist, erzeugt die erneute Kodierung %2520 statt %20. Dekodieren Sie zuerst, wenn Sie nicht sicher sind, ob es bereits kodiert ist.
- Falsche Verwendung von encodeURI vs. encodeURIComponent – encodeURI behält URL-Strukturzeichen bei; encodeURIComponent kodiert sie. Verwenden Sie Letzteres für Abfrageparameterwerte.
- Ungültige Escape-Sequenzen – %ZZ oder ein einzelnes % am Ende sind ungültig und führen beim Dekodieren zu Fehlern.
Tipps
- Codieren Sie immer Abfrageparameterwerte, die Leerzeichen, Sonderzeichen oder Benutzereingaben enthalten können, um eine URL-Injection zu verhindern.
- Verwenden Sie encodeURIComponent() für Abfrageparameterwerte und encodeURI() für vollständige URLs, die nur unsichere Zeichen codiert werden müssen.
- URL Kodierung ist keine Verschlüsselung – jeder kann sie entschlüsseln. Verwenden Sie es niemals, um vertrauliche Daten zu verbergen.
- Verwenden Sie unseren URL Encoder und Decoder für die sofortige, private Konvertierung in Ihrem Browser.