Vai al contenuto
ToolsMinify logo
Tutti gli articoli

Qu’est-ce que l’encodage URL ? Explication del codage in pourcentage (2026)

L'encodage URL (encodage in pourcentage) remplace i caractères non sécurisés par dei codici %XX affinche i link restent valides. Impara i caractères réservés e non réservés, il format %XX, encodeURIComponent vs encodeURI e dei esempi pratiques per i espaces, &, =, ? e il testo non-ASCII.

Aggiornato 16 luglio 20267 min di lettura

Usa Codificatore / decodificatore URL - Gratis

Apri lo strumento live e applica ciò che hai imparato in questa guida.

Apri Codificatore / decodificatore URL

Ogni caractère d'une adresse Web deve provenir d'un petit insieme sûr su lequel i navigateurs, i serveurs, i proxys e i log s'accordent tous. Quando vous devez placer quelque chose a l'extérieur d'un link - un espace, una esperluette, una lettre accentuée o un emoji - il deve prima être codé in URL. L'encodage URL, également appelé encodage in pourcentage, e la norme qui remplace questi caractères par un signe di pourcentage suivi di loro valore d'byte in hexadécimal, di sorte qu'un espace devient %20 e & devient %26. Questa guida explique questo qu'est l'encodage URL, quels caractères in ont besoin, come fonctionne il format %XX e il choix encodeURIComponent vs encodeURI qui fait trébucher la plupart dei sviluppatori - con dei esempi concrets que vous puoi copier.

Risposta rapida

Le codage URL (codage in pourcentage) remplace i caractères non sécurisés o réservés in un URL par un % suivi di deux chiffres hexadécimaux représentant l'byte del caractère in UTF-8. Un espace devient %20, una esperluette devient %26 e un e (é) accentué devient %C3%A9. Utilisez encodeURIComponent per i valori individuelles que vous déposez in un URL e encodeURI per un URL complet que vous non souhaitez non diviser.

Qu'est-ce que l'encodage URL ?

Le codage URL e un moyen di représenter dei caractères in un localisateur di ressources uniforme (URL) in utilisant solo un jeu di caractères limité e universellement sûr. La norme URL (RFC 3986) autorise l'apparition littérale d'une poignée di caractères seulement : i lettres ASCII A-Z e a-z, i chiffres 0-9 e alcuni symboles. Tout il reste - i espaces, la plupart dei signes di ponctuation e tutti i caractères non inglese - deve être converti in una séquence codée in pourcentage avant di pouvoir voyager in tutta sicurezza a l'intérieur d'un lien.

La raison in e que i URL traversent di nombreux systèmes e que certains caractères ont una signification particulière per questi systèmes. Un espace puo être supprimé silencieusement o transformé in +, un # démarre il fragment e un ? démarre la stringa di requête. Le codage in pourcentage rimuove l'ambiguïté in transformant tutto caractère problématique in un codice signifiant « ce sono dei données, non un délimiteur ».

Caractères réservés o non réservés

La spécification URL divise i caractères in groupes. Savoir lequel e lequel vous indica esattamente questo qui deve être codé e questo qui deve être laissé tel quel.

Caractères non réservés (jamais codés)

Ces caractères possono sempre être utilisés in tutta sicurezza tels quels n'importe dove in un URL e non devono non être codés :

  • Lettres majuscules : A-Z
  • Lettres minuscules : a a z
  • Chiffres : 0-9
  • Quatre symboles : trait d'union (-), trait di soulignement (_), point (.) e tilde (~)

Caractères réservés (encodés lorsqu'ils sono utilisés comme données)

Les caractères réservés ont un rôle spécial in un URL : ils agissent comme dei délimiteurs qui séparent una partie d'une autre. Ils non sono in sicurezza que lorsqu'ils font questo travail. Si un caractère réservé apparaît a l'intérieur d'une valore plutôt que comme séparateur, il deve être codé afin qu'il non soit non confondu con un délimiteur.

  • Délimiteurs di chemin e d'autorité : / : @
  • Délimiteurs di requêtes e di fragments : ? # & =
  • Sous-délimiteurs : ! $ & ' ( ) * + , ; =

Par exemple, il & in https://example.com/search?q=cats&sort=new sépare deux paramètres di requête e reste donc littéral. Mais si vous recherchez l'expression "chats e chiens", il & a l'intérieur di questa valore deve devenir %26 - sinon il server lit &dogs comme deuxième paramètre.

Le format %XX expliqué

Le codage in pourcentage suit una regola simple : un signe di pourcentage (%) suivi di deux chiffres hexadécimaux. Ces deux chiffres sono la valore d'un seul byte écrit in base 16 (00 in FF, soit 0-255 in décimal). Per coder un caractère, vous recherchez sa valore in byte e l'écrivez après il %.

  • L'espace e di 32 in décimal, soit 20 in hexadécimal - donc un espace devient %20.
  • L'esperluette & e 38 decimale = 26 hex - donc & devient %26.
  • Le signe égal = e 61 decimale = hexadécimal 3D - donc = devient %3D.
  • Le point d'interrogation ? e 63 decimale = 3F hex - alors ? devient %3F.

Les caractères in la plage ASCII (0-127) sono constitués d'un seul byte, ils codent donc sempre selon una séquence %XX. Les caractères in dehors dell'ASCII sono prima convertis in loro byte UTF-8 - qui possono être di deux, trois o quatre byte - e ogni byte devient son propre %XX. C'est perche la lettre accentuée é (U+00E9) codice in %C3%A9 : sa forme UTF-8 e constituée dei deux byte C3 e A9.

encodeURIComponent vs encodeURI - quando utilizzare chacun

JavaScript vous offre deux fonctions intégrées per il codage in pourcentage, e scegliere la mauvaise e l'erreur di codage URL la piu courante. La différence réside in i caractères réservés qu'ils laissent seuls.

encodeURIComponent - per una seule valore

encodeURIComponent encode presque tutto questo qui non e un caractère non réservé, e incluso i délimiteurs réservés /? : @ & = + $ #. Utilisez-le per una seule donnée que vous insérez in un URL : una valore di paramètre di requête, un segment di chemin o un champ di formulaire. Parce qu'il échappe a & e =, una valore qui i contient non brisera non la stringa di requête environnante.

encodeURI - per un URL entier

encodeURI e conçu per coder un URL complet e gia assemblé. Il laisse i délimiteurs réservés intacts - :, /, ?, #, & e = passent inchangés - di sorte que il URL conserve sa structure. Il codice solo dei caractères qui non sono mai validi nulle part, comme i espaces. Utilisez-le quando vous disposez d'un URL complet pouvant contenir un caractère illégal e que vous non souhaitez non modifier ses parties.

Règle générale

Encodez i parties, non il tout. Créez un URL in exécutant prima encodeURIComponent su ogni valore individuelle, puis joignez-les con &, =, / e ? délimiteurs vous-même. Accédez a encodeURI solo quando vous recevez una stringa URL complète a nettoyer.

Deux remarques pratiques : encodeURIComponent n'échappe non ai caractères ! ' ( ) *, donc un parser strict puo avoir besoin di i remplacer manuellement. Et n'encodez mai una stringa gia encodée - cela transforme ogni % in %25, donc %20 devient %2520, un bug classique di double encodage qui produit dei link rompus.

Exemples travaillés

Voici a quoi ressemblent i caractères courants prima e dopo l’encodage. Ogni ligne se lit comme un caractère - questo que e - sotto forme codée.

  • Espace - séparateur di mots - %20 (un + e également utilisé per i espaces in i stringhe di requête ; voir ci-dessous)
  • & - esperluette - %26
  • = - signe égal - %3D
  • ? - point d'interrogation - %3F
  • / - barre oblique - %2F
  • # - démarrage del hachage/fragment - %23
  • + - signe piu - %2B
  • é - e con un accent aigu (non-ASCII, 2 UTF-8 byte) - %C3%A9
  • 😀 - emoji (4 UTF-8 byte) - %F0%9F%98%80

Encoder una valore con dei espaces e dei symboles

Supposons que vous souhaitiez transmettre l'expression di ricerca « chats e chiens = amusant » comme valore di requête unique. L'exécution d'encodeURIComponent dessus produit cats%20%26%20dogs%20%3D%20fun. Ogni espace, il & e il = sono échappés, donc il tutto e traité comme una valore plutôt que comme trois paramètres distincts.

Un esempio di stringa di requête complète

En l'assemblant, imaginez una pagina di ricerca qui prend una requête e una catégorie. Vous encodez ogni valore séparément, puis assemblez il URL :

  • Valeur brute della requête : chats e chiens
  • Valeur brute della catégorie : pets/animals
  • Requête codée : cats%20%26%20dogs
  • Catégorie codée : pets%2Fanimals
  • URL final : https://example.com/search?q=cats%20%26%20dogs&category=pets%2Fanimals

Notez que i & e = tra q=... etcategory=... restent littéraux car ils font loro travail di délimiteurs, tandis que il & a l'intérieur della valore di requête e il / a l'intérieur della valore di catégorie sono codés car questo sono dei données. C'est esattamente questo que vous donne l'encodage di ogni valore con encodeURIComponent, puis l'assemblage dei éléments vous-même.

Espace : %20 o + ?

Dans il chemin d'un URL, un espace e sempre di %20. Dans una stringa di requête, l'ancien codage di formulaire (application/x-www-form-urlencoded) utilise plutôt + per un espace. Les deux décodent in espace, mais ils non sono non interchangeables partout - lors del décodage, verifica si la source a utilisé %20 o + afin di restaurer correctement il testo original.

Questions fréquemment posées

Qu’est-ce que il codage URL in termes simples ?

L'encodage URL e un moyen d'inclure in tutta sicurezza dei caractères spéciaux in una adresse Web in i remplaçant par un % e un codice a deux chiffres. Étant donné que i URL non possono contenir qu'un insieme limité di caractères, tutto il reste - comme un espace, una esperluette o una lettre accentuée - e converti in son équivalent codé in pourcentage (un espace devient %20) affinche il link reste valide.

Pourquoi i URL contiennent-ils %20 ?

%20 e la forme codée in pourcentage d'un espace. Les espaces non sono non autorisés in un URL, donc lorsqu'un link in contient un - souvent a partir d'un nom di file o d'un terme di ricerca - il e remplacé par %20. Quando la pagina se charge, il server o il browser décode %20 in un espace.

Quelle e la différence tra encodeURI e encodeURIComponent ?

encodeURIComponent codice una valore unique e échappe ai délimiteurs réservés (& = ? / #), questo qui la rend appropriée per un paramètre di requête o un segment di chemin. encodeURI codice un URL intero e laisse questi délimiteurs intacts affinche l'adresse conserve sa structure. Utilisez encodeURIComponent per i pièces e encodeURI per un URL complet.

Quels caractères devono être codés in URL ?

Uniquement i caractères non réservés - A-Z, a-z, 0-9 e - _ . ~ - sono sempre in sécurité. Tout il reste deve être codé lorsqu'il apparaît a l'intérieur d'une valore : i espaces, la plupart dei signes di ponctuation, i délimiteurs réservés (/ ? : @ & = + $ , ; # ! ' ( ) *), e tutti i caractères non-ASCII comme i lettres accentuées e i emoji.

Le codage URL est-il il stesso que il chiffrement o Base64 ?

L'encodage URL non e un cryptage e n'offre aucune sécurité. Il s'agit d'une transformation di testo entièrement réversible qui permet solo ai caractères di voyager in tutta sicurezza in un URL, e n'importe qui puo il décoder instantanément. Il diffère également di Base64, qui réencode i dati binaires in un alphabet di 64 caractères in un but différent.

Comment décoder una stringa codée in URL ?

Inversez il processus : ogni séquence %XX e reconvertie in l'byte qu'elle représente, e i byte consécutifs sono lus al format UTF-8 per récupérer dei caractères comme é o emoji. Dans JavaScript, decodeURIComponent fait cela ; un strumento di décodage URL fait di stesso in tuo browser e affiche una erreur claire si l'entrée a una séquence mal formée comme un % solitaire.

Encoder o décoder un URL instantanément

Utilisez l'[Encodeur/Décodeur URL] gratuito (/developer-tools/url-encoder-decoder) per encoder in pourcentage n'importe quel testo o décoder un URL codé - basculez tra encodeURIComponent e encodeURI in un clic, e tutto s'exécute in tuo navigateur.

Usa Codificatore / decodificatore URL - Gratis

Apri lo strumento live e applica ciò che hai imparato in questa guida.

Apri Codificatore / decodificatore URL

Articoli correlati