logo
GeekFormat

URL-Kodierung

Code der Kodierung
In den Warenkorb
0 chars

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

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

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

Anleitung

  1. Geben Sie die zu kodierende/dekodierende URL oder den Text ein oder fügen Sie ihn ein
  2. Wählen Sie die Kodierungsrichtung (Kodieren/Dekodieren) und den Modus (Component / URI / full / RFC 3986)
  3. Aktivieren Sie den Batch-Modus für mehrzeilige Daten oder Query Only, um nur Parameterwerte zu kodieren
  4. Überprüfen Sie das hervorgehobene Ergebnis und kopieren Sie die kodierte Zeichenfolge für API-Anfragen oder URL-Erstellung

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.

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.

术语表

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

ZeichenBedeutungencodeURIComponentencodeURIRFC 3986
LeerzeichenLeerzeichen%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

KodiertOriginalzeichenVerwendung 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)

Code Examples

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%AC

URL-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%AC

URL-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());
    }
}

Authoritative References