logo
GeekFormat

Codifica URL

Codice di codifica
URL Input
0 chars

Strumento online gratuito di codifica/decodifica URL. Supporta 4 modalità encodeURIComponent/encodeURI/RFC 3986, evidenziazione in tempo reale dei caratteri codificati, modalità batch multilinea, Query Only per codificare solo i valori dei parametri. Elaborazione locale nel browser, nessun upload di dati.

Raccomandazioni correlate

Casi d'uso

  • Debug parametri API: confronta gli output di encodeURIComponent e encodeURI per risolvere problemi di mancata corrispondenza della firma dell'interfaccia
  • Decodifica log: decodifica in batch il contenuto codificato URL nei log per ripristinare testo leggibile
  • Costruzione URL: la modalità Query Only preserva i nomi delle chiavi e codifica solo i valori, evitando errori di formato dovuti alla concatenazione manuale
  • Sviluppo frontend: l'evidenziazione aiuta a capire quali caratteri vengono escapati, utile per eseguire il debug dei reindirizzamenti di pagina
  • Migrazione dati: elabora in batch dati codificati URL esportati da sistemi legacy per convertirli al nuovo formato

Funzionalità

  • Quattro modalità di codifica: passaggio con un clic tra encodeURIComponent / encodeURI / full / RFC 3986, confronto in tempo reale delle differenze di output
  • Evidenziazione codifica: evidenzia in tempo reale i caratteri %XX escapati, marcatura color ambra per visualizzare i risultati della codifica a colpo d'occhio
  • Modalità batch: supporto per codifica/decodifica multilinea in batch, ogni riga viene elaborata indipendentemente, ideale per log o dati in blocco
  • Modalità Query Only: codifica solo la parte del valore del parametro URL (dopo il segno di uguale), mantenendo intatti i nomi delle chiavi, i simboli e la struttura del percorso
  • Debounce in tempo reale: codifica/decodifica automatica in 300ms, nessun clic su pulsanti necessario, i risultati appaiono durante la digitazione
  • Conteggio caratteri: visualizza in tempo reale il numero di caratteri inseriti, pratico per verificare i limiti di lunghezza dei parametri API

Come utilizzare

  1. Inserisci o incolla l'URL o il testo da codificare/decodificare
  2. Seleziona la direzione di codifica (Codifica/Decodifica) e la modalità (Component / URI / full / RFC 3986)
  3. Attiva la modalità batch per dati multilinea, o Query Only per codificare solo i valori dei parametri
  4. Verifica il risultato evidenziato e copia la stringa codificata per l'uso nelle richieste API o nella costruzione di URL

Domande frequenti

Qual è la differenza tra encodeURIComponent e encodeURI?

encodeURIComponent codifica tutti i caratteri non sicuri, inclusi &, =, ?, ecc., quindi è adatto per codificare valori di parametri singoli. encodeURI preserva i caratteri strutturali dell'URL (:, /, ?, #, ecc.), quindi è adatto per codificare URL completi. Caso d'uso: Component per valori di parametri, URI per URL completi.

Qual è la differenza tra RFC 3986 e la codifica standard?

RFC 3986 è una versione aggiornata dello standard URL che tratta la tilde ~ come carattere sicuro che non richiede codifica, mentre gli standard precedenti la codificano come %7E. L'uso di RFC 3986 evita differenze di analisi su alcuni server e offre una migliore compatibilità.

In quali scenari viene utilizzata la modalità Query Only?

Viene utilizzata quando hai una query string URL come ?name=张三&city=北京 e desideri codificare solo i valori dei parametri senza influenzare i nomi delle chiavi e i simboli. In questo caso, name e city rimangono invariati, mentre i valori vengono codificati come %E5%BC%A0%E4%B8%89 e %E5%8C%97%E4%BA%AC.

Gli spazi devono essere codificati come + o come %20?

Nel formato application/x-www-form-urlencoded (invio di moduli HTML), gli spazi sono codificati come +. Ma nei percorsi URL e in encodeURIComponent, gli spazi sono sempre codificati come %20. Questo strumento utilizza il formato %20 per impostazione predefinita.

Perché strumenti diversi producono risultati diversi per lo stesso carattere cinese?

Dipende dal metodo di codifica dei caratteri. Questo strumento utilizza la codifica UTF-8 (standard Web), il carattere cinese '中' è codificato come %E4%B8%AD. Se altri strumenti utilizzano la codifica GBK, il risultato sarà %D6%D0. Si consiglia di utilizzare sempre UTF-8 per gli URL Web.

A cosa serve l'evidenziazione della codifica?

Evidenzia i caratteri codificati nel formato %XX (come spazio→%20), aiutando a comprendere le regole di codifica e a risolvere i problemi. Lettere e numeri sono caratteri sicuri che non vengono codificati, solo il cinese e i simboli speciali vengono codificati.

Il carattere % stesso deve essere codificato?

Sì. % è il carattere di inizio escape nella codifica URL. Se un % letterale appare in un valore di parametro, deve essere codificato come %25; altrimenti verrà interpretato erroneamente come prefisso di codifica, causando errori di analisi. Ad esempio, 100% deve essere codificato come 100%25.

Cos'è la codifica URL?

La codifica URL (codifica percentuale) è il processo di conversione dei caratteri non sicuri negli URL nel formato %XX. Gli URL possono contenere solo un piccolo sottoinsieme di caratteri ASCII (lettere, cifre, -_.~), tutti gli altri caratteri (inclusi cinese, spazi, simboli speciali) devono essere codificati prima di essere trasmessi in un URL. Ad esempio, lo spazio è codificato come %20, il carattere cinese '中' come %E4%B8%AD.

**encodeURIComponent vs encodeURI**: Queste sono le due funzioni di codifica più utilizzate. encodeURIComponent codifica in modo più esaustivo, inclusi i delimitatori di parametri come &, =, ?, quindi è adatta per codificare valori di parametri singoli. encodeURI preserva la struttura dell'URL (schema://, percorso, /, ?, #), quindi è adatta per codificare URL completi. L'uso errato causa errori di analisi dei parametri.

**RFC 3986 vs standard precedenti**: RFC 3986 tratta la tilde ~ come carattere sicuro che non richiede codifica, mentre gli standard iniziali la codificano come %7E. L'uso di RFC 3986 riduce gli escape non necessari, migliora la leggibilità dell'URL ed evita problemi di analisi di %7E su alcuni server.

**Modalità Query Only**: Viene utilizzata quando è necessario codificare solo i valori dei parametri di query nell'URL, senza influenzare i nomi delle chiavi, i segni di uguale e i simboli &. Ad esempio, ?name=张三 viene codificato come ?name=%E5%BC%A0%E4%B8%89, mantenendo i nomi delle chiavi leggibili e codificando solo i valori.

**Evidenziazione della codifica**: Evidenzia in tempo reale i caratteri nel formato %XX in color ambra in modo che gli utenti vedano a colpo d'occhio quali caratteri sono stati codificati. Questo aiuta a comprendere le regole di codifica: lettere e numeri sono generalmente caratteri sicuri che non vengono codificati, solo il cinese e i simboli speciali vengono codificati. Tutti i calcoli vengono eseguiti localmente nel browser, nessun dato viene inviato.

术语表

Codifica percentuale (Percent-encoding)
Il nome ufficiale della codifica URL, un metodo di codifica che rappresenta i caratteri utilizzando % seguito da due cifre esadecimali. Ad esempio, lo spazio è codificato come %20, il carattere cinese '中' come %E4%B8%AD.Wikipedia - Codifica percentuale
encodeURIComponent
Funzione integrata di JavaScript che codifica tutti i caratteri tranne A-Z a-z 0-9 - _ . ! ~ * ' ( ). È più comunemente usata per codificare valori individuali di parametri di query URL.
encodeURI
Funzione integrata di JavaScript che preserva i caratteri strutturali dell'URL (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) e codifica solo i caratteri che necessitano realmente di codifica. È usata per codificare URL completi.
RFC 3986
L'ultimo standard IETF per la sintassi generica URI (2005), che definisce le regole di codifica URL e classifica la tilde ~ come carattere non riservato (non richiede codifica). Sostituisce i precedenti RFC 2396 e RFC 1738.RFC 3986
Caratteri riservati (Reserved Characters)
Caratteri con significato speciale negli URL, come : / ? # [ ] @ ! $ & ' ( ) * + , ; =. Questi caratteri devono essere codificati quando usati come dati, ma non nelle loro posizioni strutturali.
Caratteri non riservati (Unreserved Characters)
Caratteri sicuri che possono essere utilizzati in qualsiasi posizione nell'URL senza codifica, inclusi A-Z, a-z, 0-9, -, _, ., ~ (secondo RFC 3986).
Query String
La parte dell'URL dopo ?, composta da coppie key=value separate da &. Ad esempio, in ?name=张三&age=20, name=张三 e age=20 sono due parametri.
URLSearchParams
API fornita dai browser moderni per costruire e analizzare facilmente le query string URL, con gestione automatica di codifica e decodifica. Più sicura e affidabile della concatenazione manuale di stringhe.
application/x-www-form-urlencoded
Il formato di invio predefinito dei moduli HTML, dove gli spazi sono codificati come + invece di %20, leggermente diverso da encodeURIComponent. I framework lato server di solito gestiscono automaticamente entrambi i formati.
Codifica UTF-8
La codifica dei caratteri standard del Web. Nella codifica URL, i caratteri non ASCII (come cinese, emoji) vengono prima convertiti in sequenze di byte UTF-8, quindi ogni byte viene codificato nel formato %XX.

Confronto escape caratteri in 4 modalità di codifica

CarattereSignificatoencodeURIComponentencodeURIRFC 3986
SpazioSpazio%20%20%20
!Punto esclamativo%21!%21
#Identificatore di frammento%23#%23
$Simbolo del dollaro%24$%24
&Separatore di parametri%26&%26
'Virgoletta singola%27'%27
(Parentesi sinistra%28(%28
)Parentesi destra%29)%29
*Asterisco%2A*%2A
+Più%2B+%2B
,Virgola%2C,%2C
/Separatore di percorso%2F/%2F
:Due punti%3A:%3A
;Punto e virgola%3B;%3B
=Uguale%3D=%3D
?Query string%3F?%3F
@Chiocciola%40@%40
~Tilde%7E%7E~

Riferimento rapido caratteri riservati URL comuni

CodificatoCarattere originaleUso nell'URL
%20(spazio)Spazio
%21!Sottodelimitatore
%23#Identificatore di frammento (hash)
%25%Carattere di escape stesso
%26&Separatore parametri di query
%2B+Più / spazio modulo
%2F/Separatore di percorso
%3A:Separatore di schema
%3D=Separatore chiave-valore
%3F?Inizio query string
%40@Separatore autenticazione/email
%5B[Parametro array (RFC 3986)

Code Examples

Codifica/Decodifica URL in JavaScript

// encodeURIComponent: codifica valori di parametri singoli (più comune)
const param = encodeURIComponent('张三&李四');
console.log(param); // %E5%BC%A0%E4%B8%89%26%E6%9D%8E%E5%9B%9B

// encodeURI: codifica URL completa (preserva caratteri strutturali :/?#&=)
const url = encodeURI('https://example.com/search?q=ciao mondo');
console.log(url);

// Decodifica
const decoded = decodeURIComponent(param);
console.log(decoded); // 张三&李四

// Conforme RFC 3986 (~ non codificato)
function rfc3986Encode(str) {
  return encodeURIComponent(str).replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase());
}

// API URLSearchParams (metodo moderno, codifica automatica)
const params = new URLSearchParams({ name: '张三', city: '北京' });
console.log(params.toString());
// name=%E5%BC%A0%E4%B8%89&city=%E5%8C%97%E4%BA%AC

Codifica/Decodifica URL in Python

from urllib.parse import quote, unquote, urlencode, quote_plus

# quote: simile a encodeURIComponent
encoded = quote('张三&李四')
print(encoded)  # %E5%BC%A0%E4%B8%89%26%E6%9D%8E%E5%9B%9B

# Modalità RFC 3986 (~ non codificato, è l'impostazione predefinita)
print(quote('hello~world'))  # hello~world

# quote_plus: gli spazi sono codificati come + (formato modulo)
print(quote_plus('hello world'))  # hello+world

# Decodifica
print(unquote(encoded))  # 张三&李四

# urlencode: costruisci query string
params = urlencode({'name': '张三', 'city': '北京'})
print(params)
# name=%E5%BC%A0%E4%B8%89&city=%E5%8C%97%E4%BA%AC

Codifica/Decodifica URL in Java

import java.net.URLEncoder;
import java.net.URLDecoder;
import java.net.URI;
import java.nio.charset.StandardCharsets;

public class URLEncodeExample {
    public static void main(String[] args) throws Exception {
        // Codifica URL (URLEncoder è formato modulo, spazi diventano +)
        String encoded = URLEncoder.encode("张三&李四", "UTF-8");
        System.out.println(encoded);
        // %E5%BC%A0%E4%B8%89%26%E6%9D%8E%E5%9B%9B

        // Decodifica
        String decoded = URLDecoder.decode(encoded, "UTF-8");
        System.out.println(decoded); // 张三&李四

        // Costruisci URL completa (la classe URI gestisce automaticamente la codifica)
        URI uri = new URI("https", "example.com", "/search", "q=ciao", null);
        System.out.println(uri.toASCIIString());
    }
}

Authoritative References