Encodage et décodage d'URL
Encodez et décodez les chaînes d'URL pour gérer en toute sécurité les caractères spéciaux et le texte non-ASCII, idéal pour les paramètres de requête et la transmission des chemins.
Mode d'emploi
L'encodage d'URL convertit les caractères spéciaux ou non-ASCII au format %XX pour une transmission sûre dans les URLs.
Utilisez « Encoder » pour transformer le texte en un format sûr pour les URL (par exemple, pour les paramètres de requête).
Utilisez « Décoder » pour restaurer les séquences %XX dans leurs caractères d'origine.
Scénarios courants : gestion des paramètres de requête, transmission de données de formulaire, appels API, etc.
Fonctionnalités
- Deux modes d'encodage : encodeURIComponent et encodeURI
- Gestion flexible des espaces : encodage en + ou %20
- Conversion en temps réel avec statistiques de longueur entrée/sortie
- Boutons copier/effacer et fonctionnalité d'envoi bidirectionnel vers le panneau
- Prise en charge complète de l'internationalisation avec les thèmes multiples DaisyUI
Qu'est-ce que l'encodage d'URL ?
L'encodage URL convertit les caractères en séquences percent-encodées %XX pour garantir une transmission sûre dans les URLs.
encodeURIComponent est adapté aux composants individuels (par ex., la valeur d'un seul paramètre de requête) et encode la plupart des caractères non alphanumériques.
encodeURI est conçu pour les chaînes URI complètes et préserve les caractères réservés ayant une signification structurelle, tels que ?, &, = et /.
Cas d'usage courants
- Construction de paramètres de requête (par ex., mots-clés de recherche, conditions de filtre)
- Encodage et transmission des données de formulaire via GET/POST
- Encodage des paramètres de requête API
- Insertion sécurisée des entrées utilisateur dans les segments de chemin URL
FAQ et pièges à éviter
- encodeURI vs encodeURIComponent : Utilisez l'encodage de composant pour les parties individuelles, et l'encodage URI pour les URLs entières
- Espaces et + : Dans application/x-www-form-urlencoded, les espaces sont couramment représentés par + dans les chaînes de requête
- Évitez le double décodage : Un décodage répété peut corrompre les données
- Les séquences percent invalides déclenchent des erreurs ; gérez les exceptions avec élégance
Comment effectuer l'encodage/décodage d'URL dans les langages de programmation
JavaScript
Encoder
// 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);
Décoder
// 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
Encoder
// 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']);
Décoder
// Component
$decoded = rawurldecode($s);
// If input uses '+' for spaces
$decodedPlus = urldecode($s);
Python
Encoder
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)
Décoder
from urllib.parse import unquote, unquote_plus
# Component
dec = unquote(s)
# Input with '+' for spaces
dec_plus = unquote_plus(s)
Go
Encoder
import (
"net/url"
)
// Query component
enc := url.QueryEscape(text) // spaces => +
// Path segment
// go1.8+
// url.PathEscape(text)
Décoder
import (
"net/url"
)
// Query component
dec, _ := url.QueryUnescape(s)
// Path segment
// url.PathUnescape(s)
Rust
Encoder
// 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
Décoder
use urlencoding::decode;
// decode treats '+' as space
let dec = decode(s)?; // Result, _>
Java
Encoder
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");
Décoder
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
// URLDecoder treats '+' as space
String dec = URLDecoder.decode(s, StandardCharsets.UTF_8);