Kostenloser URL-Encoder Online
Text für sichere Verwendung in URLs kodieren. Konvertiert Sonderzeichen in prozentkodiertesFormat.
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.