URL-coderen en -decoderen

Codeer en decodeer URL-strings veilig, met ondersteuning voor speciale tekens en niet-ASCII-tekst, geschikt voor queryparameters en padtransmissie.

Coderen

Coderingsmodus

Decoderen

Gebruiksaanwijzing

URL-codering converteert speciale of niet-ASCII-tekens naar de %XX-vorm, zodat ze veilig in URLs kunnen worden overgedragen.
Gebruik 'Coderen' om tekst om te zetten naar een URL-veilige vorm (bijv. voor queryparameters).
Gebruik 'Decoderen' om %XX-sequenties terug te converteren naar de oorspronkelijke tekens.
Veelvoorkomende scenario's: verwerken van queryparameters, formuliergegevensoverdracht, API-aanroepen, enz.

Snelvoorbeelden

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

Functies

  • Twee coderingsmodi: encodeURIComponent en encodeURI
  • Flexibele spatieverwerking: coderen als + of %20
  • Real-time conversie met weergave van invoer-/uitvoerlengtestatistieken
  • Kopiëren/leegmaken-knoppen en bidirectioneel versturen naar het andere paneel
  • Volledige internationalisatie en ondersteuning voor meerdere DaisyUI-thema's

Wat is URL-codering

URL-coderen zet tekens om naar %XX-procentcoderingsreeksen voor veilige overdracht in URLs.

encodeURIComponent is geschikt voor afzonderlijke componenten (zoals één queryparameterwaarde) en codeert de meeste niet-alfanumerieke tekens.

encodeURI is geschikt voor volledige URI-strings en codeert geen reservatiekarakters met structurele betekenis zoals ?, &, =, /.

Veelvoorkomende toepassingen

  • Queryparameters bouwen (zoektermen, filtercondities, enz.)
  • Coderen en verzenden van GET/POST-formuliergegevens
  • Coderen van API-requestparameters
  • Veilig gebruikersinvoer opnemen in URL-padsegmenten

Veelgestelde vragen en valkuilen

  • encodeURI vs encodeURIComponent: gebruik component voor parameters, URI voor volledige links
  • Spaties en +: application/x-www-form-urlencoded gebruikt vaak + om spaties in querystrings voor te stellen
  • Voorkom dubbele decoding: meerdere keren decoderen kan gegevens beschadigen
  • Ongeldige procentsequenties werpen een fout; behandel uitzonderingen elegant

Hoe URL-codering te doen in programmeertalen

JavaScript
Coderen
// 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);
Decoderen
// 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
Coderen
// 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']);
Decoderen
// Component
$decoded = rawurldecode($s);
// If input uses '+' for spaces
$decodedPlus = urldecode($s);
Python
Coderen
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)
Decoderen
from urllib.parse import unquote, unquote_plus

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

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

// Query component
dec, _ := url.QueryUnescape(s)
// Path segment
// url.PathUnescape(s)
Rust
Coderen
// 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
Decoderen
use urlencoding::decode;

// decode treats '+' as space
let dec = decode(s)?; // Result, _>
Java
Coderen
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");
Decoderen
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

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