Kostenloser URL-Encoder Online

Text für sichere Verwendung in URLs kodieren. Konvertiert Sonderzeichen in prozentkodiertesFormat.

0 Zeichen

Was ist URL-Kodierung?

URL-Kodierung, auch als Prozentkodierung bekannt, ist ein Mechanismus zur Kodierung von Sonderzeichen in URLs. URLs können nur bestimmte Zeichen aus dem ASCII-Satz enthalten, daher müssen andere Zeichen in ein gültiges Format konvertiert werden.

Häufige Anwendungen der URL-Kodierung

  • Query-String-Parameter: Beim Erstellen von URLs mit Query-Parametern kodieren Sie sowohl Schlüssel als auch Werte, um die URL-Struktur nicht zu beschädigen. Zum Beispiel wird "search=coffee & tea" zu "search=coffee%20%26%20tea". Ohne Kodierung würde das & als Parametertrenner interpretiert, nicht als Teil des Suchbegriffs. Dies ist der häufigste Anwendungsfall. Jedes Suchformular, jeder Filter oder jede API mit Query-Parametern erfordert URL-Kodierung.
  • API-Endpunkt-Konstruktion: REST-APIs enthalten oft Parameter im URL-Pfad oder Query-String. Beim Aufrufen von APIs mit Benutzereingaben, Sonderzeichen oder dynamischen Werten kodieren Sie Parameter, um HTTP 400-Fehler zu verhindern. Zum Beispiel erfordert die Suche nach "[email protected]" in einer API die Kodierung des @-Symbols: /api/users/user%40example.com.
  • HTML-Formularübermittlungen (GET): Wenn HTML-Formulare method="GET" verwenden, kodieren Browser automatisch Formulardaten vor dem Absenden mit URL-Kodierung. Wenn Sie URLs manuell erstellen oder JavaScript zum Absenden von Formularen verwenden, müssen Sie Daten selbst kodieren. Formular-Kodierung verwendet das application/x-www-form-urlencoded-Format, bei dem Leerzeichen zu + werden (obwohl %20 auch funktioniert).
  • Internationale Zeichen und Unicode: Nicht-ASCII-Zeichen (akzentuierte Buchstaben wie é, ñ, ü, chinesische/japanische/koreanische Zeichen, Arabisch, Kyrillisch, Emoji) müssen URL-kodiert werden. Das Zeichen wird zuerst in UTF-8-Bytes kodiert, dann wird jedes Byte zu %XX. Zum Beispiel wird "café" zu "caf%C3%A9" (é = UTF-8-Bytes C3 A9).

Wie funktioniert URL-Kodierung?

URL-Kodierung (Prozentkodierung) wandelt Zeichen, die in URLs nicht erlaubt sind, in ein Format um, das das Prozentzeichen (%) gefolgt von zwei Hexadezimalziffern verwendet, die den Bytewert des Zeichens darstellen. Hier ist der technische Prozess:

  • Schritt 1 - Unsichere Zeichen identifizieren: Zeichen außerhalb der unreservierten Menge (A-Z, a-z, 0-9, -, _, ., ~) müssen kodiert werden. Reservierte Zeichen (:, /, ?, #, @, usw.) müssen kodiert werden, wenn sie als Daten statt als Trennzeichen verwendet werden.
  • Schritt 2 - In UTF-8-Bytes konvertieren: Das Zeichen wird zunächst in seine UTF-8-Bytefolge kodiert. ASCII-Zeichen erzeugen ein einziges Byte; Nicht-ASCII-Zeichen erzeugen 2-4 Bytes.
  • Schritt 3 - Jedes Byte in %XX konvertieren: Jedes Byte wird als Prozentzeichen (%) gefolgt von zwei großgeschriebenen Hexadezimalziffern dargestellt. Zum Beispiel wird ein Leerzeichen (Byte 0x20) zu %20.
  • Schritt 4 - Ergebnis verketten: Die kodierten Bytes ersetzen das ursprüngliche Zeichen in der URL-Zeichenkette. Mehrbyte-Zeichen erzeugen mehrere %XX-Sequenzen.

Beispiel: Der String "hello world" wird zu "hello%20world" (Leerzeichen = Byte 0x20 = %20). Der String "café" wird zu "caf%C3%A9", weil é aus UTF-8-Bytes C3 A9 besteht, die jeweils als %C3 und %A9 kodiert werden.

RFC 3986 und URL-Standard

Die URL-Kodierung wurde in RFC 3986 (2005) standardisiert, das die Syntax für Uniform Resource Identifier (URI) definiert. Der Standard legt fest, welche Zeichen "unreserviert" sind (sicher zu verwenden wie vorhanden: A-Z, a-z, 0-9, -, _, ., ~) und welche "reserviert" sind (haben besondere Bedeutung: :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =). Reservierte Zeichen müssen prozentkodiert werden, wenn sie wörtlich in URLs verwendet werden. Vor diesem Standard verwendeten verschiedene Systeme unterschiedliche Kodierungsmethoden, was zu Kompatibilitätsproblemen führte. RFC 3986 vereinheitlichte die URL-Kodierung im gesamten Web.

Sicherheit und URL-Kodierung

URL-Kodierung macht Daten URL-sicher, verschlüsselt oder sichert sie jedoch nicht. Kodierte URLs können leicht dekodiert werden. Verwenden Sie immer HTTPS für sensible Daten. Erfahren Sie mehr über Kodierungssicherheit

URL-Kodierung in Programmiersprachen

Jede Programmiersprache bietet Funktionen zur URL-Kodierung. Hier sind umfassende Beispiele:

// urlencode() - für Formulardaten (Leerzeichen werden zu +)
$encoded = urlencode($data);

// rawurlencode() - RFC 3986-konform (Leerzeichen werden zu %20)
$encoded = rawurlencode($data);

// Query-Strings erstellen
$params = http_build_query([
    'search' => 'coffee & tea',
    'category' => 'food/drink'
]);
// Ergebnis: search=coffee+%26+tea&category=food%2Fdrink
// encodeURIComponent() - für Query-Parameter (verwenden Sie dies!)
const encoded = encodeURIComponent('hello world & stuff');
// Ergebnis: hello%20world%20%26%20stuff

// encodeURI() - für vollständige URLs (selten benötigt)
const fullUrl = encodeURI('https://example.com/path with spaces');

// URLs mit Parametern erstellen
const baseUrl = 'https://api.example.com/search';
const query = encodeURIComponent('[email protected]');
const url = `${baseUrl}?q=${query}`;
from urllib.parse import quote, quote_plus, urlencode

# quote() - RFC 3986-Kodierung
encoded = quote('hello world & stuff')
# Ergebnis: hello%20world%20%26%20stuff

# quote_plus() - Formular-Kodierung (Leerzeichen werden zu +)
encoded = quote_plus('hello world')
# Ergebnis: hello+world

# urlencode() - Query-Strings erstellen
params = urlencode({'search': 'coffee & tea', 'page': 1})
# Ergebnis: search=coffee+%26+tea&page=1
import (
    "net/url"
    "fmt"
)

// QueryEscape() - Query-Parameter kodieren
encoded := url.QueryEscape("hello world & stuff")
// Ergebnis: hello+world+%26+stuff

// PathEscape() - Pfadsegmente kodieren
encoded := url.PathEscape("hello/world")
// Ergebnis: hello%2Fworld

// URLs mit Parametern erstellen
u, _ := url.Parse("https://api.example.com/search")
q := u.Query()
q.Set("search", "coffee & tea")
u.RawQuery = q.Encode()
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

// URL-Kodierung (immer UTF-8 angeben)
String encoded = URLEncoder.encode("hello world & stuff",
                                   StandardCharsets.UTF_8);
// Ergebnis: hello+world+%26+stuff

// URLs erstellen
String baseUrl = "https://api.example.com/search?q=";
String query = URLEncoder.encode("[email protected]",
                                 StandardCharsets.UTF_8);
String fullUrl = baseUrl + query;
require 'uri'
require 'cgi'

# URI.encode_www_form_component() - Standard-Kodierung
encoded = URI.encode_www_form_component('hello world & stuff')
# Ergebnis: hello+world+%26+stuff

# CGI.escape() - Alternative
encoded = CGI.escape('hello world')

# Query-Strings erstellen
params = URI.encode_www_form({search: 'coffee & tea', page: 1})
# Ergebnis: search=coffee+%26+tea&page=1
using System;
using System.Web;
using System.Net;

// HttpUtility.UrlEncode() - Standard-Kodierung
string encoded = HttpUtility.UrlEncode("hello world & stuff");
// Ergebnis: hello+world+%26+stuff

// Uri.EscapeDataString() - RFC 3986 (keine System.Web-Abhängigkeit)
string encoded = Uri.EscapeDataString("hello world & stuff");
// Ergebnis: hello%20world%20%26%20stuff

Verwandte Tools

Müssen Sie URL-kodierte Strings dekodieren? Verwenden Sie unseren URL-Decoder, um prozentkodierte Texte zurück in lesbares Format zu konvertieren.

Binärdaten kodieren? Probieren Sie unseren Base64-Encoder zur Konvertierung von Binärdaten in Textformat aus.

Text auf Webseiten anzeigen? Verwenden Sie unseren HTML-Entity-Encoder, um HTML-Sonderzeichen sicher zu kodieren.