ByteCompress

Codificatore URL

Codifica percentualmente caratteri speciali negli URL o componenti URI singoli affinché siano sicuri da trasmettere in richieste HTTP, stringhe di query e dati di modulo. Segue RFC 3986.

0 chars
FreeClient-sideNo signup

Un carattere spazio in una stringa di query URL interrompe silenziosamente la richiesta. RFC 3986 (Identificatore di Risorsa Uniforme: Sintassi Generica) definisce quali caratteri sono sicuri in un URL e quali devono essere codificati percentualmente. La codifica percentuale sostituisce ogni byte non sicuro con % seguito da due cifre esadecimali maiuscole. Questo codificatore basato su browser applica RFC 3986 istantaneamente, senza trasmettere i tuoi dati da nessuna parte. Usalo per codificare URL completi o valori singoli di parametri di query e ottenere output conforme agli standard ogni volta.

Come Codificare un URL

  1. Incolla l'URL o il testo nel campo di input.
  2. Scegli la modalità URL Completo per codificare solo i caratteri non sicuri, o la modalità Componente per codificare tutti i caratteri speciali inclusi & e =.
  3. L'output codificato percentualmente appare nel pannello dei risultati.
  4. Copia la stringa codificata per utilizzarla nella tua richiesta, codice o documentazione.

Comprendere la Codifica Percentuale

Lo Standard RFC 3986

RFC 3986 (IETF, 2005) definisce due categorie di caratteri in un URI. I caratteri non riservati (A-Z a-z 0-9 - _ . ~) possono apparire senza codifica. I caratteri riservati (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) hanno un significato strutturale speciale e potrebbero o meno necessitare di codifica a seconda del contesto. Ogni altro carattere - inclusi spazi, Unicode non ASCII e caratteri al di fuori di questi insiemi - deve essere codificato percentualmente.

encodeURI vs encodeURIComponent

JavaScript fornisce due funzioni di codifica. encodeURI() codifica un URL completo e lascia intatti i caratteri riservati perché svolgono ruoli strutturali. encodeURIComponent() codifica anche i caratteri strutturali, trattandoli come dati letterali - è progettato per nomi e valori di parametri di query singoli dove & e = romperebbero la sintassi URL. La modalità URL Completo di questo strumento corrisponde a encodeURI; la modalità Componente corrisponde a encodeURIComponent.

Esempio

Input

Ciao Mondo! @2024

Output (Modalità Componente)

Ciao%20Mondo!%20%402024

Lo spazio si codifica come %20 (standard RFC 3986); @ diventa %40. Il punto esclamativo è un carattere non riservato in alcuni contesti e potrebbe o meno essere codificato a seconda della modalità.

Usi Comuni

  • Valori dei parametri di query - Codifica i valori contenenti &, = o + prima di aggiungerli a un URL
  • Query dei motori di ricerca - Codifica l'input di ricerca dell'utente prima di costruire un URL di reindirizzamento
  • Costruzione di richieste API - Codifica i segmenti di percorso contenenti barre, spazi o caratteri speciali
  • Parametri OAuth - Le stringhe base di firma OAuth 1.0 richiedono codifica percentuale secondo RFC 5849

Errori Comuni

  • Codifica doppia - Se un valore è già codificato percentualmente, codificarlo di nuovo codifica il % stesso, producendo %2520 invece di %20
  • Utilizzare la modalità URL Completo per i valori dei parametri - La modalità URL Completo lascia & e = non codificati, rompendo la sintassi della stringa di query; usa la modalità Componente per i valori dei parametri
  • Dimenticare i caratteri non ASCII - Il testo non ASCII deve essere prima convertito in byte UTF-8, quindi ogni byte codificato percentualmente separatamente

Per invertire il processo, usa il Decodificatore URL. Per i dati binari trasportati nei parametri di query URL, prima codifica con il Codificatore Base64 in modalità sicura per URL, quindi l'output è già sicuro per URL senza ulteriore codifica percentuale.

Domande Frequenti

Qual è la differenza tra codifica URL e codifica Base64?

La codifica percentuale sostituisce i caratteri non sicuri con sequenze esadecimali %XX, mantenendo i caratteri sicuri così come sono, quindi la lunghezza dell'output è simile a quella dell'input. Base64 converte tutti i dati in un alfabeto di 64 caratteri, aumentando la dimensione del 33% ma garantendo che il risultato contenga solo caratteri ASCII sicuri. La codifica percentuale rende specifici caratteri sicuri per l'URL; Base64 codifica dati binari arbitrari come testo.

Quando dovrei usare encodeURI rispetto a encodeURIComponent in JavaScript?
encodeURI() è per codificare un URL completo - preserva i caratteri strutturali come : / ? # & =. encodeURIComponent() è per codificare valori singoli all'interno di un URL - codifica i caratteri strutturali affinché siano trattati come dati letterali piuttosto che come sintassi URL. In caso di dubbio, usa encodeURIComponent() per qualsiasi input fornito dall'utente.
Perché uno spazio diventa %20 in alcuni codificatori ma + in altri?
%20 è la codifica percentuale RFC 3986 per uno spazio ed è corretta per segmenti di percorso URI e valori di query. Il segno + che rappresenta uno spazio è specifico per application/x-www-form-urlencoded (invii di moduli HTML), che precede RFC 3986. Entrambi sono validi nei rispettivi contesti, ma %20 è lo standard universale al di fuori dei moduli HTML.
La codifica URL funziona per i caratteri non ASCII?

Sì. I caratteri non ASCII vengono prima convertiti in byte UTF-8, quindi ogni byte è codificato percentualmente separatamente. Il carattere ş (U+015F) diventa %C5%9F. Il carattere cinese 中 (U+4E2D) diventa %E4%B8%AD. I browser e i server moderni si aspettano tutti la codifica UTF-8 per i caratteri non ASCII negli URL.

I miei dati URL vengono inviati ai vostri server quando utilizzo questo strumento?

No. Tutte le codifiche utilizzano encodeURI() o encodeURIComponent() eseguite localmente nel tuo browser. Gli URL, i parametri di query, i token di autenticazione e qualsiasi altro dato che incolli non vengono mai trasmessi ai nostri server.