URL-Kodierung & -Dekodierung

Kodieren und dekodieren Sie URL-Zeichenfolgen, um Sonderzeichen und Nicht-ASCII-Texte sicher zu verarbeiten. Ideal für Abfrageparameter und die Übertragung von Pfaden.

Kodieren

Kodierungsmodus

Dekodieren

Anleitung

Die URL-Kodierung wandelt Sonderzeichen oder Nicht-ASCII-Zeichen in das Format %XX um, um eine sichere Übertragung in URLs zu gewährleisten.
Verwenden Sie „Kodieren“, um Text in ein URL-sicheres Format umzuwandeln (z. B. für Abfrageparameter).
Verwenden Sie „Dekodieren“, um %XX-Sequenzen wieder in ihre ursprünglichen Zeichen zurückzuversetzen.
Übliche Szenarien: Verarbeitung von Abfrageparametern, Übertragung von Formulardaten, API-Aufrufe usw.

Schnellbeispiele

Originaltext
https://example.com/search?q=你好世界&type=text
URL-codiert
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C&type=text

Funktionen

  • Zwei Kodierungsmodi: encodeURIComponent und encodeURI
  • Flexible Leerzeichenbehandlung: Kodierung als + oder %20
  • Echtzeitkonvertierung mit Statistik zur Eingabe-/Ausgabelänge
  • Kopieren-/Löschen-Schaltflächen und bidirektionale Senden-an-Panel-Funktion
  • Vollständige Internationalisierungsunterstützung mit DaisyUI-Multitheme

Was ist URL-Kodierung?

Die URL-Kodierung wandelt Zeichen in prozentkodierte Sequenzen (%XX) um, um eine sichere Übertragung in URLs zu gewährleisten.

encodeURIComponent eignet sich für einzelne Komponenten (z. B. einen einzelnen Abfrageparameterwert) und kodiert die meisten nicht-alphanumerischen Zeichen.

encodeURI ist für vollständige URI-Strings konzipiert und behält reservierte Zeichen mit struktureller Bedeutung bei, wie ?, &, = und /.

Häufige Anwendungsfälle

  • Erstellung von Abfrageparametern (z. B. Suchbegriffe, Filterbedingungen)
  • Kodierung und Übertragung von Formulardaten via GET/POST
  • Kodierung von API-Anforderungsparametern
  • Sichere Einfügung von Benutzereingaben in URL-Pfadsegmente

FAQs & Fallstricke

  • encodeURI vs. encodeURIComponent: Verwenden Sie Komponenten-Kodierung für einzelne Teile und URI-Kodierung für gesamte URLs
  • Leerzeichen und +: Bei application/x-www-form-urlencoded werden Leerzeichen in Abfragestrings häufig als + dargestellt
  • Doppeltes Dekodieren vermeiden: Wiederholtes Dekodieren kann Daten beschädigen
  • Ungültige Prozentsequenzen lösen Fehler aus; behandeln Sie Ausnahmen ordnungsgemäß

URL-Kodierung/Dekodierung in Programmiersprachen durchführen

JavaScript
Kodieren
// Component (recommended for query values)
const encoded = encodeURIComponent(text);
// If you need '+' for spaces in query strings
const encodedPlus = encoded.replace(/%20/g, '+');
// Full URI
const encodedUri = encodeURI(url);
Dekodieren
// Treat '+' as space if needed
const input = plusAsSpace ? s.replace(/\+/g, ' ') : s;
// Component
const dec1 = decodeURIComponent(input);
// Fallback to decodeURI when input is a full URL
const dec2 = decodeURI(input);
PHP
Kodieren
// Component (RFC 3986)
$encoded = rawurlencode($text);
// '+' for spaces (application/x-www-form-urlencoded)
$encodedPlus = str_replace('%20', '+', $encoded);
// Full query usage
$query = http_build_query(['q' => '你好 世界', 'type' => 'text']);
Dekodieren
// Component
$decoded = rawurldecode($s);
// If input uses '+' for spaces
$decodedPlus = urldecode($s);
Python
Kodieren
from urllib.parse import quote, quote_plus

# Component (RFC 3986)
enc = quote(text, safe='')
# '+' for spaces (application/x-www-form-urlencoded)
enc_plus = quote_plus(text)
Dekodieren
from urllib.parse import unquote, unquote_plus

# Component
dec = unquote(s)
# Input with '+' for spaces
dec_plus = unquote_plus(s)
Go
Kodieren
import (
    "net/url"
)

// Query component
enc := url.QueryEscape(text) // spaces => +
// Path segment
// go1.8+
// url.PathEscape(text)
Dekodieren
import (
    "net/url"
)

// Query component
dec, _ := url.QueryUnescape(s)
// Path segment
// url.PathUnescape(s)
Rust
Kodieren
// Cargo.toml: urlencoding = "^2"
use urlencoding::{encode, encode_binary};

let enc = encode(text);              // component; spaces => %20
let enc_plus = enc.replace("%20", "+"); // if you need '+' for spaces
Dekodieren
use urlencoding::decode;

// decode treats '+' as space
let dec = decode(s)?; // Result, _>
Java
Kodieren
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

// Query param / form style (spaces => '+')
String enc = URLEncoder.encode(text, StandardCharsets.UTF_8);
// For RFC3986-like component encoding, replace '+' with %20 if needed
String encSpace = enc.replace("+", "%20");
Dekodieren
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

// URLDecoder treats '+' as space
String dec = URLDecoder.decode(s, StandardCharsets.UTF_8);