URL-Kodierer / Dekoder
Kodieren Sie Text zur Verwendung in URLs und Query Strings, oder dekodieren Sie mit Prozentzeichen kodierte URLs zurück in lesbaren Text — mit vollständiger Unicode-Unterstützung, alles in Ihrem Browser.
Ausgabe
Wie man es benutzt
Wählen Sie Kodieren oder Dekodieren und fügen Sie Ihren Text oder Ihre URL ein. Standardmäßig kodiert es einen einzelnen Wert (escapt Zeichen wie & = ? /). Aktivieren Sie "Vollständige URI", um die Struktur einer URL beizubehalten und nur unsichere Zeichen zu escapen. Klicken Sie auf Kopieren, um das Ergebnis zu übernehmen. URL-Kodierung, auch Prozentcodierung genannt, ist die Standardmethode, um Text sicher in eine URL oder eine Query String zu platzieren. Jedes Zeichen außerhalb eines kleinen Satzes reservierter und unreservierter ASCII-Zeichen wird durch ein Prozentzeichen gefolgt von zwei hexadezimalen Ziffern ersetzt, die den Bytewert dieses Zeichens darstellen — ein Leerzeichen wird zu %20, ein Ampersand wird zu %26 usw. URLs erlauben nur einen begrenzten Satz von ASCII-Zeichen: Buchstaben, Ziffern und eine Handvoll Satzzeichen wie - _ . ~. Alles andere, einschließlich Leerzeichen, Anführungszeichen und Nicht-Englisch-Buchstaben, muss escapt werden, bevor es sicher in eine URL reisen kann. Ohne Kodierung kann ein Browser oder Server misslesen, wo ein Teil einer URL endet und ein anderer anfängt — ein nicht escaptes & in einem Wert sieht wie der Start eines neuen Query-Parameters aus, ein nicht escaptes ? sieht wie der Start der Query String selbst aus, und ein nicht escaptes # wird als Fragment-Identifier behandelt und schneidet alles danach stillschweigend ab. Nehmen Sie den Ausdruck "café & bar" als Beispiel Query-Wert. Die Leerzeichen werden zu %20, das Ampersand wird zu %26, und das akzentuierte é — das zwei Bytes in UTF-8 benötigt — wird zu %C3%A9. Mit Prozentcodierung kodiert wird der Ausdruck zu caf%C3%A9%20%26%20bar. Dekodieren kehrt den Prozess um: jedes %XX-Paar wird als UTF-8-Byte gelesen und wieder in das ursprüngliche Zeichen montiert, daher gibt das Dekodieren dieses Strings café & bar genau wie es anfangs war zurück. Kodieren einer ganzen URL und Kodieren eines einzelnen Query-String-Werts sind verschiedene Aufgaben. Vollständige URI-Kodierung escapt unsichere Zeichen, lässt aber absichtlich eine URL's strukturelle Zeichen — / : ? & = # — unverändert, da das Entfernen würde die Syntax der URL selbst brechen. Komponenten-Kodierung (die Standardeinstellung hier) escapt auch diese Zeichen, weil ein Wert, der in eine Query String eingefügt wird, niemals erlaubt sein sollte, ein verirrtes & oder = einzuführen, das ein Server als neuen Parameter missverstehen würde. Prozentcodierung erscheint ständig in alltäglicher Webarbeit: Erstellen eines Query-Parameters aus Benutzereingabe, Teilen eines Links, das einen Suchbegriff oder Filter enthält, Zusammensetzen von API-Anfrage-URLs, Übermittlung von Formulardaten über GET, und Konstruieren von UTM-Parametern für Marketing-Links. Es ist auch die Lösung für den klassischen "malformed URI" Fehler, der von decodeURIComponent geworfen wird — dieser Fehler bedeutet, dass der String, der dekodiert wird, ein % enthält, das nicht von zwei gültigen Hex-Ziffern gefolgt wird, normalerweise weil er falsch kodiert oder zweimal kodiert wurde.
Häufig gestellte Fragen
- Was ist der Unterschied zwischen Komponenten-Kodierung und vollständiger URI-Kodierung?
- Komponenten-Kodierung (die Standardeinstellung) escapt reservierte Zeichen wie & = ? /, richtig für einen einzelnen Query-Wert. Vollständige URI-Kodierung lässt diese Zeichen an Ort und Stelle, richtig für eine ganze URL.
- Verarbeitet es Nicht-Englisch-Zeichen?
- Ja. Text wird als UTF-8 mit Prozentzeichen kodiert, daher werden Umlaute, Emojis und CJK-Zeichen korrekt kodiert und dekodiert.
- Was ist, wenn ich ungültig kodierten Text einfüge?
- Wenn ein Prozentzeichen-Escape fehlerhaft ist (wie ein einzelnes %), zeigt Dekodieren einen Fehler statt Müll zu produzieren.
- Warum wird ein Leerzeichen manchmal %20 und manchmal ein +?
- Beide repräsentieren ein Leerzeichen, aber in verschiedenen Kontexten. Prozentcodierung (RFC 3986) verwendet immer %20, das ist was dieses Werkzeug produziert. Das +-Zeichen ist eine ältere Konvention aus dem application/x-www-form-urlencoded Format, das von HTML-Formularübermittlungen verwendet wird, wo + ein Leerzeichen bedeutet und ein literales Pluszeichen selbst als %2B kodiert werden muss.