URL-codering en -decodering
Codeer en decodeer URL-tekenreeksen om speciale tekens en niet-ASCII-tekst veilig te verwerken, ideaal voor queryparameters en padoverdracht.
Gebruiksaanwijzing
Met URL-codering worden speciale of niet-ASCII-tekens omgezet naar %XX-indeling om veilig te worden verzonden in URL's.
Gebruik 'Codeer' om tekst om te zetten naar een URL-veilige indeling (bijv. voor queryparameters).
Gebruik 'Decodeer' om %XX-reeksen terug te zetten naar de oorspronkelijke tekens.
Veelvoorkomende situaties: verwerken van queryparameters, formuliergegevensoverdracht, API-aanroepen, etc.
Kenmerken
- Twee coderingsmodi: encodeURIComponent en encodeURI
- Flexibele afhandeling van spaties: codeer als + of %20
- Real-time conversie met statistieken over invoer/uitvoerlengte
- Kopieer/wis-knoppen en bidirectionele verzend-naar-paneel-functionaliteit
- Volledige internationale ondersteuning met DaisyUI multi-thema
Wat is URL-codering?
URL-codering zet tekens om in %XX procentgecodeerde sequenties om veilige verzending in URL's te garanderen.
encodeURIComponent is geschikt voor afzonderlijke onderdelen (bv. een enkele queryparameterwaarde) en codeert de meeste niet-alfanumerieke tekens.
encodeURI is ontworpen voor volledige URI-tekenreeksen en behoudt gereserveerde tekens met structurele betekenis, zoals ?, &, = en /.
Veelvoorkomende toepassingen
- Queryparameters opbouwen (bv. zoekwoorden, filtervoorwaarden)
- Formuliergegevens coderen en verzenden via GET/POST
- API-aanvraagparameters coderen
- Veilig gebruikersinvoeging invoegen in URL-padsegmenten
Veelgestelde vragen en valkuilen
- encodeURI versus encodeURIComponent: Gebruik componentcodering voor afzonderlijke delen en URI-codering voor volledige URL's
- Spaties en +: In application/x-www-form-urlencoded worden spaties vaak weergegeven als + in queryreeksen
- Dubbele decodering vermijden: Herhaalde decodering kan gegevens beschadigen
- Ongeldige procentsequenties veroorzaken fouten; handel uitzonderingen op een nette manier af
URL-codering/decodering uitvoeren in programmeertalen
JavaScript
Codeer
// 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);
Decodeer
// 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
Codeer
// 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']);
Decodeer
// Component
$decoded = rawurldecode($s);
// If input uses '+' for spaces
$decodedPlus = urldecode($s);
Python
Codeer
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)
Decodeer
from urllib.parse import unquote, unquote_plus
# Component
dec = unquote(s)
# Input with '+' for spaces
dec_plus = unquote_plus(s)
Go
Codeer
import (
"net/url"
)
// Query component
enc := url.QueryEscape(text) // spaces => +
// Path segment
// go1.8+
// url.PathEscape(text)
Decodeer
import (
"net/url"
)
// Query component
dec, _ := url.QueryUnescape(s)
// Path segment
// url.PathUnescape(s)
Rust
Codeer
// 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
Decodeer
use urlencoding::decode;
// decode treats '+' as space
let dec = decode(s)?; // Result, _>
Java
Codeer
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");
Decodeer
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
// URLDecoder treats '+' as space
String dec = URLDecoder.decode(s, StandardCharsets.UTF_8);