Codifica e decodifica URL
Codifica e decodifica stringhe URL per gestire in modo sicuro caratteri speciali e testo non ASCII, ideale per parametri di query e trasmissione dei percorsi.
Come si usa
La codifica URL converte i caratteri speciali o non ASCII nel formato %XX per una trasmissione sicura negli URL.
Usa 'Codifica' per trasformare il testo in un formato sicuro per gli URL (ad es., per i parametri di query).
Usa 'Decodifica' per ripristinare le sequenze %XX nei loro caratteri originali.
Scenari comuni: gestione dei parametri di query, trasmissione dei dati dei moduli, chiamate API, ecc.
Funzionalità
- Due modalità di codifica: encodeURIComponent e encodeURI
- Gestione flessibile degli spazi: codifica come + o %20
- Conversione in tempo reale con statistiche sulla lunghezza input/output
- Pulsanti per copia/cancella e invio bidirezionale ai pannelli
- Supporto completo all'internazionalizzazione con temi multipli DaisyUI
Cos'è la codifica URL?
La codifica URL converte i caratteri in sequenze percent-encoded (%XX) per garantire una trasmissione sicura negli URL.
encodeURIComponent è adatto per singoli componenti (ad esempio, il valore di un singolo parametro di query) e codifica la maggior parte dei caratteri non alfanumerici.
encodeURI è progettato per stringhe URI complete e preserva i caratteri riservati con significato strutturale, come ?, &, = e /.
Casi d'uso comuni
- Creazione di parametri di query (ad esempio, parole chiave di ricerca, condizioni di filtro)
- Codifica e invio dei dati del modulo tramite GET/POST
- Codifica dei parametri delle richieste API
- Inserimento sicuro dell'input utente nei segmenti del percorso URL
Domande frequenti e insidie
- encodeURI vs encodeURIComponent: usa la codifica dei componenti per le singole parti e la codifica URI per gli URL completi
- Spazi e +: In application/x-www-form-urlencoded, gli spazi sono comunemente rappresentati come + nelle stringhe di query
- Evita la doppia decodifica: la decodifica ripetuta può corrompere i dati
- Le sequenze percent invalidhe generano errori; gestisci le eccezioni in modo appropriato
Come eseguire la codifica/decodifica URL nei linguaggi di programmazione
JavaScript
Codifica
// 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);
Decodifica
// 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
Codifica
// 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']);
Decodifica
// Component
$decoded = rawurldecode($s);
// If input uses '+' for spaces
$decodedPlus = urldecode($s);
Python
Codifica
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)
Decodifica
from urllib.parse import unquote, unquote_plus
# Component
dec = unquote(s)
# Input with '+' for spaces
dec_plus = unquote_plus(s)
Go
Codifica
import (
"net/url"
)
// Query component
enc := url.QueryEscape(text) // spaces => +
// Path segment
// go1.8+
// url.PathEscape(text)
Decodifica
import (
"net/url"
)
// Query component
dec, _ := url.QueryUnescape(s)
// Path segment
// url.PathUnescape(s)
Rust
Codifica
// 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
Decodifica
use urlencoding::decode;
// decode treats '+' as space
let dec = decode(s)?; // Result, _>
Java
Codifica
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");
Decodifica
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
// URLDecoder treats '+' as space
String dec = URLDecoder.decode(s, StandardCharsets.UTF_8);