URL-Kodierung
Höhepunkt ist ein prozentualer Bytes kodiert.
Kostenloses Online-Tool zur URL-Kodierung/-Dekodierung. Unterstützt 4 Modi encodeURIComponent/encodeURI/RFC 3986, Echtzeit-Hervorhebung kodierter Zeichen, mehrzeiliger Batch-Modus, Query Only zur Kodierung nur von Parameterwerten. Lokale Browserverarbeitung, keine Daten hochgeladen.
Ähnliche Tools
Was ist URL-Kodierung?
Die URL-Kodierung (Prozentkodierung) ist der Prozess der Konvertierung unsicherer Zeichen in URLs in das Format %XX. URLs können nur eine kleine Teilmenge von ASCII-Zeichen enthalten (Buchstaben, Ziffern, -_.~), alle anderen Zeichen (einschließlich Chinesisch, Leerzeichen, Sonderzeichen) müssen kodiert werden, bevor sie in einer URL übertragen werden. Beispielsweise wird ein Leerzeichen als %20 kodiert, das chinesische Zeichen „中“ als %E4%B8%AD.
**encodeURIComponent vs encodeURI**: Dies sind die beiden am häufigsten verwendeten Kodierungsfunktionen. encodeURIComponent kodiert am gründlichsten, einschließlich Parametertrennzeichen wie &, =, ?, und eignet sich daher zur Kodierung einzelner Parameterwerte. encodeURI behält die URL-Struktur bei (Protokoll://, Pfad, /, ?, #) und eignet sich zur Kodierung vollständiger URLs. Eine falsche Verwendung führt zu Paramteranalysefehlern.
**RFC 3986 vs ältere Standards**: RFC 3986 behandelt die Tilde ~ als sicheres Zeichen, das nicht kodiert werden muss, während frühere Standards sie als %7E kodieren. Die Verwendung von RFC 3986 reduziert unnötige Escapes, verbessert die URL-Lesbarkeit und vermeidet Probleme mit der %7E-Analyse auf einigen Servern.
**Query-Only-Modus**: Er wird verwendet, wenn Sie nur die Werte von Abfrageparametern in der URL kodieren müssen, ohne Schlüsselnamen, Gleichheitszeichen und &-Symbole zu beeinträchtigen. Beispielsweise wird ?name=张三 als ?name=%E5%BC%A0%E4%B8%89 kodiert, wobei die Schlüsselnamen lesbar bleiben und nur die Werte kodiert werden.
**Kodierungshervorhebung**: Hebt Zeichen im Format %XX in Echtzeit bernsteinfarben hervor, sodass Benutzer auf einen Blick sehen, welche Zeichen kodiert wurden. Dies hilft, Kodierungsregeln zu verstehen: Buchstaben und Zahlen sind normalerweise sichere Zeichen, die nicht kodiert werden, nur Chinesisch und Sonderzeichen werden kodiert. Alle Berechnungen erfolgen lokal im Browser, keine Daten werden hochgeladen.
Anwendungsfälle
- API-Parameter-Debugging: Vergleicht die Ausgaben von encodeURIComponent und encodeURI, um Probleme mit nicht übereinstimmenden Schnittstellensignaturen zu beheben
- Log-Dekodierung: Dekodiert URL-kodierte Inhalte in Logs stapelweise, um lesbaren Text wiederherzustellen
- URL-Erstellung: Query-Only-Modus behält Schlüsselnamen bei und kodiert nur Werte, vermeidet Formatfehler durch manuelle Verkettung
- Frontend-Entwicklung: Hervorhebung hilft zu verstehen, welche Zeichen escapet werden, nützlich zum Debuggen von Seitenumleitungen
- Datenmigration: Verarbeitet stapelweise URL-kodierte Daten aus Altsystemen zur Konvertierung in neue Formate
Anleitung
- Geben Sie die zu kodierende/dekodierende URL oder den Text ein oder fügen Sie ihn ein
- Wählen Sie die Kodierungsrichtung (Kodieren/Dekodieren) und den Modus (Component / URI / full / RFC 3986)
- Aktivieren Sie den Batch-Modus für mehrzeilige Daten oder Query Only, um nur Parameterwerte zu kodieren
- Überprüfen Sie das hervorgehobene Ergebnis und kopieren Sie die kodierte Zeichenfolge für API-Anfragen oder URL-Erstellung
Funktionen
- Vier Kodierungsmodi: Ein-Klick-Umschaltung zwischen encodeURIComponent / encodeURI / full / RFC 3986, Echtzeitvergleich der Ausgabenunterschiede
- Kodierungshervorhebung: Hebt escapte %XX-Zeichen in Echtzeit hervor, bernsteinfarbene Markierung macht Kodierungsergebnisse auf einen Blick sichtbar
- Batch-Modus: Unterstützt mehrzeilige Batch-Kodierung/-Dekodierung, jede Zeile wird unabhängig verarbeitet, ideal für Logs oder Massendaten
- Query-Only-Modus: Kodiert nur den Parameterwertteil (nach dem Gleichheitszeichen), behält Schlüsselnamen, Symbole und Pfadstruktur unverändert bei
- Echtzeit-Debounce: Automatische Kodierung/Dekodierung nach 300ms, keine Schaltflächenklicks erforderlich, Ergebnisse erscheinen bei der Eingabe
- Zeichenzählung: Zeigt in Echtzeit die Anzahl der eingegebenen Zeichen an, praktisch zur Überprüfung von API-Parameterlängenbegrenzungen
Codebeispiele
URL-Kodierung/-Dekodierung in JavaScript
// encodeURIComponent: Kodiert einzelne Parameterwerte (am häufigsten verwendet)
const param = encodeURIComponent('张三&李四');
console.log(param); // %E5%BC%A0%E4%B8%89%26%E6%9D%8E%E5%9B%9B
// encodeURI: Kodiert vollständige URL (erhält Strukturzeichen :/?#&=)
const url = encodeURI('https://example.com/search?q=hallo welt');
console.log(url);
// Dekodierung
const decoded = decodeURIComponent(param);
console.log(decoded); // 张三&李四
// RFC 3986 konform (~ wird nicht kodiert)
function rfc3986Encode(str) {
return encodeURIComponent(str).replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase());
}
// URLSearchParams API (moderne Methode, automatische Kodierung)
const params = new URLSearchParams({ name: '张三', city: '北京' });
console.log(params.toString());
// name=%E5%BC%A0%E4%B8%89&city=%E5%8C%97%E4%BA%ACURL-Kodierung/-Dekodierung in Python
from urllib.parse import quote, unquote, urlencode, quote_plus
# quote: ähnlich wie encodeURIComponent
encoded = quote('张三&李四')
print(encoded) # %E5%BC%A0%E4%B8%89%26%E6%9D%8E%E5%9B%9B
# RFC 3986-Modus (~ wird nicht kodiert, ist Standard)
print(quote('hello~world')) # hello~world
# quote_plus: Leerzeichen werden als + kodiert (Formularformat)
print(quote_plus('hello world')) # hello+world
# Dekodierung
print(unquote(encoded)) # 张三&李四
# urlencode: Abfragezeichenfolge erstellen
params = urlencode({'name': '张三', 'city': '北京'})
print(params)
# name=%E5%BC%A0%E4%B8%89&city=%E5%8C%97%E4%BA%ACURL-Kodierung/-Dekodierung in Java
import java.net.URLEncoder;
import java.net.URLDecoder;
import java.net.URI;
import java.nio.charset.StandardCharsets;
public class URLEncodeExample {
public static void main(String[] args) throws Exception {
// URL-Kodierung (URLEncoder ist Formularformat, Leerzeichen werden zu +)
String encoded = URLEncoder.encode("张三&李四", "UTF-8");
System.out.println(encoded);
// %E5%BC%A0%E4%B8%89%26%E6%9D%8E%E5%9B%9B
// Dekodierung
String decoded = URLDecoder.decode(encoded, "UTF-8");
System.out.println(decoded); // 张三&李四
// Vollständige URL erstellen (URI-Klasse übernimmt automatische Kodierung)
URI uri = new URI("https", "example.com", "/search", "q=hallo", null);
System.out.println(uri.toASCIIString());
}
}Häufig gestellte Fragen
Was ist der Unterschied zwischen encodeURIComponent und encodeURI?
encodeURIComponent kodiert alle unsicheren Zeichen, einschließlich &, =, ? usw., und eignet sich daher zur Kodierung einzelner Parameterwerte. encodeURI behält URL-Strukturzeichen (:, /, ?, # usw.) bei und eignet sich zur Kodierung vollständiger URLs. Anwendungsfall: Component für Parameterwerte, URI für vollständige URLs.
Was ist der Unterschied zwischen RFC 3986 und der Standardkodierung?
RFC 3986 ist eine aktualisierte Version des URL-Standards, die die Tilde ~ als sicheres Zeichen behandelt, das nicht kodiert werden muss, während ältere Standards sie als %7E kodieren. Die Verwendung von RFC 3986 vermeidet Parsing-Unterschiede auf einigen Servern und bietet eine bessere Kompatibilität.
In welchen Szenarien wird der Query-Only-Modus verwendet?
Er wird verwendet, wenn Sie eine URL-Abfragezeichenfolge wie ?name=张三&city=北京 haben und nur die Parameterwerte kodieren möchten, ohne Schlüsselnamen und Symbole zu beeinträchtigen. In diesem Fall bleiben name und city unverändert, während die Werte als %E5%BC%A0%E4%B8%89 und %E5%8C%97%E4%BA%AC kodiert werden.
Sollen Leerzeichen als + oder als %20 kodiert werden?
Im Format application/x-www-form-urlencoded (HTML-Formularübermittlung) werden Leerzeichen als + kodiert. In URL-Pfaden und bei encodeURIComponent werden Leerzeichen jedoch immer als %20 kodiert. Dieses Tool verwendet standardmäßig das Format %20.
Warum erzeugen verschiedene Tools unterschiedliche Ergebnisse für dasselbe chinesische Zeichen?
Dies hängt von der Zeichenkodierungsmethode ab. Dieses Tool verwendet UTF-8-Kodierung (Web-Standard), das chinesische Zeichen „中“ wird als %E4%B8%AD kodiert. Wenn andere Tools GBK-Kodierung verwenden, lautet das Ergebnis %D6%D0. Es wird empfohlen, für Web-URLs immer UTF-8 zu verwenden.
Wozu dient die Kodierungshervorhebung?
Sie hebt im Format %XX kodierte Zeichen hervor (z. B. Leerzeichen→%20) und hilft, Kodierungsregeln zu verstehen und Probleme zu beheben. Buchstaben und Zahlen sind sichere Zeichen, die nicht kodiert werden, nur Chinesisch und Sonderzeichen werden kodiert.
Muss das Zeichen % selbst kodiert werden?
Ja. % ist das Escape-Startzeichen der URL-Kodierung. Wenn ein literales % in einem Parameterwert erscheint, muss es als %25 kodiert werden; andernfalls wird es fälschlicherweise als Kodierungspräfix interpretiert, was Parsing-Fehler verursacht. Beispielsweise muss 100% als 100%25 kodiert werden.
Glossar
- Prozentkodierung (Percent-encoding)
- Der offizielle Name der URL-Kodierung, ein Kodierungsverfahren, das Zeichen durch % gefolgt von zwei Hexadezimalziffern darstellt. Beispielsweise wird ein Leerzeichen als %20 kodiert, das chinesische Zeichen „中“ als %E4%B8%AD.Wikipedia - Prozentkodierung
- encodeURIComponent
- JavaScript-Eingabefunktion, die alle Zeichen außer A-Z a-z 0-9 - _ . ! ~ * ' ( ) kodiert. Wird am häufigsten zur Kodierung einzelner Werte von URL-Abfrageparametern verwendet.
- encodeURI
- JavaScript-Eingabefunktion, die URL-Strukturzeichen (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) beibehält und nur die Zeichen kodiert, die wirklich kodiert werden müssen. Wird zur Kodierung vollständiger URLs verwendet.
- RFC 3986
- Der aktuelle IETF-Standard für die generische URI-Syntax (2005), der die Regeln für die URL-Kodierung definiert und die Tilde ~ als nicht reserviertes Zeichen klassifiziert (keine Kodierung erforderlich). Ersetzt die älteren RFC 2396 und RFC 1738.RFC 3986
- Reservierte Zeichen (Reserved Characters)
- Zeichen mit besonderer Bedeutung in URLs wie : / ? # [ ] @ ! $ & ' ( ) * + , ; =. Diese Zeichen müssen kodiert werden, wenn sie als Daten verwendet werden, aber nicht in ihren strukturellen Positionen.
- Nicht reservierte Zeichen (Unreserved Characters)
- Sichere Zeichen, die an jeder Position in einer URL ohne Kodierung verwendet werden können, einschließlich A-Z, a-z, 0-9, -, _, ., ~ (gemäß RFC 3986).
- Abfragezeichenfolge (Query String)
- Der Teil der URL nach ?, bestehend aus key=value-Paaren getrennt durch &. Beispielsweise sind in ?name=张三&age=20 name=张三 und age=20 zwei Parameter.
- URLSearchParams
- Von modernen Browsern bereitgestellte API zum einfachen Erstellen und Analysieren von URL-Abfragezeichenfolgen mit automatischer Kodierung und Dekodierung. Sicherer und zuverlässiger als manuelle Zeichenfolgenverkettung.
- application/x-www-form-urlencoded
- Das Standard-Sendeformat von HTML-Formularen, bei dem Leerzeichen als + statt %20 kodiert werden, geringfügig anders als encodeURIComponent. Serverseitige Frameworks verarbeiten normalerweise beide Formate automatisch.
- UTF-8-Kodierung
- Die Web-Standard-Zeichenkodierung. Bei der URL-Kodierung werden Nicht-ASCII-Zeichen (wie Chinesisch, Emoji) zuerst in UTF-8-Byte-Sequenzen konvertiert, dann wird jedes Byte im Format %XX kodiert.
Vergleich der Zeichen-Escapes in 4 Kodierungsmodi
| Zeichen | Bedeutung | encodeURIComponent | encodeURI | RFC 3986 |
|---|---|---|---|---|
Leerzeichen | Leerzeichen | %20 | %20 | %20 |
! | Ausrufezeichen | %21 | ! | %21 |
# | Fragmentkennung | %23 | # | %23 |
$ | Dollarzeichen | %24 | $ | %24 |
& | Parametertrennzeichen | %26 | & | %26 |
' | Einfaches Anführungszeichen | %27 | ' | %27 |
( | Linke Klammer | %28 | ( | %28 |
) | Rechte Klammer | %29 | ) | %29 |
* | Sternchen | %2A | * | %2A |
+ | Pluszeichen | %2B | + | %2B |
, | Komma | %2C | , | %2C |
/ | Pfadtrennzeichen | %2F | / | %2F |
: | Doppelpunkt | %3A | : | %3A |
; | Semikolon | %3B | ; | %3B |
= | Gleichheitszeichen | %3D | = | %3D |
? | Abfragezeichenfolge | %3F | ? | %3F |
@ | At-Zeichen | %40 | @ | %40 |
~ | Tilde | %7E | %7E | ~ |
Schnellreferenz häufiger URL-Reservezeichen
| Kodiert | Originalzeichen | Verwendung in URL |
|---|---|---|
%20 | (Leerzeichen) | Leerzeichen |
%21 | ! | Untertrennzeichen |
%23 | # | Fragmentkennung (Hash) |
%25 | % | Escape-Zeichen selbst |
%26 | & | Abfrageparametertrennzeichen |
%2B | + | Pluszeichen/Formular-Leerzeichen |
%2F | / | Pfadtrennzeichen |
%3A | : | Schematrennzeichen |
%3D | = | Schlüssel-Wert-Trennzeichen |
%3F | ? | Beginn der Abfragezeichenfolge |
%40 | @ | Authentifizierungs/E-Mail-Trennzeichen |
%5B | [ | Array-Parameter (RFC 3986) |
Authoritative References
- Sicherer String-Vergleich
- Binary-Konverter
- Caesar-Verschlüsselung
- Morsecode-Übersetzer
- Hex-Konverter
- Video zu Base64
- Base64 zu Video
- Bild zu Base64
- Base64 zu Bild
- Text zu Base64
- Base64 zu Text
- Datei-Hash-Prüfer
- Datei zu Base64
- Base64 zu Datei
- Audio zu Base64
- Base64 zu Audio
- AES verschlüsseln und entschlüsseln
- DES Verschlüsseln Entschlüsseln
- Base32 Encoder Decoder
- Base58 kodieren und dekodieren
- Base64-Kodierung
- Base64-Dekodierung
- Base64 Diff
- Base64-Aufteilung
- Base64 mehrzeilig zusammenführen
- Base64-Formatierung
- Base64 Validator
- Base64-Stapelkodierung
- Base64 Batch Decoder
- Base64-Bereinigung
- Base64-Padding-Handler
- Base64 Statistik
- Base64 zu Hex
- Base64 DataURL Konverter
- Base64-Hex-Konverter
- Base85-Encoder
- HMAC-Generator & Verifizierer
- PBKDF2-Schlüsselableitung
- MD5 Hash
- SHA-256-Hash
- SHA1 Hash
- SHA512-Hash
- JWT Decoder, Verifizierer & Generator
- HTML Encode Decode
- Unicode-Escaping
- URL-Kodierung
- URL Safe Base64
- MIME Base64
- Java-Obfuscator
- JS-Obfuscator
- PHP-Obfuscator
- Python-Obfuscator