Skip to main content

Encodeur et Decodeur URL

Encodez et decodez les URL en ligne. Convertissez les caracteres speciaux au format encode en pourcentage pour une utilisation securisee dans les adresses Web et les chaines de requete.

Ad (leaderboard)
Longueur d'entree
Longueur de sortie
Taille d'entree
Taille de sortie
Rate this tool
0.0 / 5 · 0 ratings

Embed This Calculator

Add this calculator to your website for free. Copy the single line of code below and paste it into your HTML. The calculator auto-resizes to fit your page.

<script src="https://calchammer.com/embed.js" data-calculator="url-encoder-decoder" data-category="everyday"></script>
data-theme "light", "dark", or "auto"
data-values Pre-fill inputs, e.g. "amount=1000"
data-max-width Max width, e.g. "600px"
data-border "true" or "false"
Or use an iframe instead
<iframe src="https://calchammer.com/embed/everyday/url-encoder-decoder" width="100%" height="500" style="border:none;border-radius:12px;" title="Url Encoder Calculator"></iframe>

Preview

yoursite.com/blog
Url Encoder Calculator auto-resizes here
Ad (in_results)

Comment utiliser l'encodeur et decodeur URL

Saisissez ou collez du texte dans le champ d'entree et cliquez sur Encoder pour le convertir au format encode en URL. L'outil fournit deux formats de sortie simultanement : l'Encodage par composant utilise l'equivalent de la fonction JavaScript encodeURIComponent(), qui encode tous les caracteres speciaux, y compris les delimiteurs d'URL comme /, ? et #. L'Encodage URL complet utilise l'equivalent de encodeURI(), qui preserve les caracteres structurels de l'URL tout en encodant le reste. Pour inverser le processus, collez du texte encode dans le champ d'entree et cliquez sur Decoder. Les deux champs de sortie afficheront le meme resultat decode.

La grille de statistiques sous la sortie affiche la longueur en caracteres et la taille en octets de l'entree et de la sortie, vous aidant a comprendre comment l'encodage affecte la taille des donnees. Chaque champ de sortie possede son propre bouton Copier pour un acces rapide au presse-papiers. Cet outil fonctionne entierement dans votre navigateur, aucune donnee n'est envoyee a un serveur.

Ad (in_content)

Qu'est-ce que l'encodage URL ?

L'encodage URL, formellement connu sous le nom d'encodage en pourcentage, est defini dans le RFC 3986 comme le mecanisme de representation des caracteres dans un identifiant de ressource uniforme (URI) qui ne sont pas autorises dans la syntaxe de l'URI. Les URL ne peuvent contenir qu'un ensemble limite de caracteres ASCII : des lettres, des chiffres et quelques caracteres speciaux (- _ . ~) connus comme caracteres non reserves. Tout autre caractere doit etre encode sous forme d'un signe pourcentage suivi de deux chiffres hexadecimaux representant sa valeur en octets. Par exemple, un espace est encode en %20, une esperluette en %26 et un signe plus en %2B.

Les caracteres reserves tels que : / ? # [ ] @ ! $ & ' ( ) * + , ; = ont une signification structurelle speciale dans les URL. Lorsque ces caracteres apparaissent comme des donnees plutot que comme des delimiteurs, ils doivent etre encodes en pourcentage. Par exemple, si une requete de recherche contient une esperluette, elle doit etre encodee en %26 pour ne pas etre interpretee comme un separateur de parametres.

encodeURIComponent vs encodeURI

JavaScript fournit deux fonctions integrees pour l'encodage d'URL, chacune servant un objectif different. encodeURIComponent() encode tous les caracteres sauf les caracteres non reserves (A-Z, a-z, 0-9, - _ . ~). Cela le rend ideal pour encoder les composants individuels d'une URL tels que les valeurs de parametres de requete, les segments de chemin ou les identifiants de fragment. Il encode les caracteres comme / ? # & = car ceux-ci casseraient la structure s'ils etaient laisses non encodes dans une valeur de composant.

encodeURI() encode une URI complete tout en preservant les caracteres qui donnent a une URL sa structure : : / ? # [ ] @ ! $ & ' ( ) * + , ; =. Utilisez-le lorsque vous avez une URL complete qui peut contenir des caracteres non-ASCII (comme des lettres accentuees ou des espaces dans le chemin) mais dont les delimiteurs structurels doivent rester intacts. Par exemple, encodeURI("https://example.com/chemin avec espaces") encode correctement uniquement les espaces tout en conservant les delimiteurs :// et /.

Espaces : + vs %20

Le traitement des espaces dans les URL suit deux conventions. La norme d'encodage en pourcentage (RFC 3986) encode les espaces en %20, et c'est l'encodage correct pour les segments de chemin et les identifiants de fragment. Le format application/x-www-form-urlencoded, utilise par les formulaires HTML lors de la soumission de donnees via GET ou POST, encode les espaces en +. Ce format est defini dans la specification HTML et c'est ce que les navigateurs utilisent pour serialiser les donnees de formulaire en chaines de requete. %20 et + sont tous deux des representations valides d'un espace, mais ils appartiennent a des contextes differents. Lors de la construction d'URL par programmation, preferez %20 pour la coherence avec le RFC 3986.

Cas d'utilisation courants

L'encodage URL est essentiel dans de nombreux scenarios de developpement Web. Lors de la construction d'URL avec des parametres de requete dynamiques, chaque valeur de parametre doit etre encodee pour empecher les caracteres speciaux de casser la structure de l'URL. Les requetes API necessitent frequemment l'encodage des valeurs de parametres, en particulier lors de la transmission de contenu genere par l'utilisateur, de termes de recherche ou de noms de fichiers. Les URL de redirection integrees comme parametres de requete doivent etre entierement encodees pour que l'ensemble de la cible de redirection soit traite comme une valeur unique. Les donnees de formulaire envoyees dans des requetes GET sont automatiquement encodees par les navigateurs, mais le code cote serveur doit souvent encoder les valeurs lors de la construction d'URL pour les redirections, les appels API ou la generation de liens.

Un autre scenario courant est l'encodage de donnees pour une utilisation dans les URI data:, les bookmarklets et les affectations JavaScript location.href. L'encodage est egalement critique lors de la construction de signatures OAuth, d'URL signees par HMAC et de toute manipulation d'URL sensible a la securite ou un encodage incorrect pourrait entrainer des incompatibilites de signature ou des vulnerabilites d'injection.

Questions frequemment posees

Qu'est-ce que l'encodage URL ?

L'encodage URL (encodage en pourcentage) convertit les caracteres non autorises dans les URL en un signe pourcentage suivi de deux chiffres hexadecimaux. Les espaces deviennent %20, les esperluettes deviennent %26.

Quelle est la difference entre encodeURI et encodeURIComponent ?

encodeURI preserve les caracteres structurels de l'URL comme :, /, ?, et #. encodeURIComponent encode tout sauf les caracteres non reserves, ce qui le rend adapte a l'encodage de valeurs individuelles de parametres de requete.

Pourquoi les espaces sont-ils encodes en + ou %20 ?

Le format application/x-www-form-urlencoded utilise + pour les espaces dans les soumissions de formulaires. La norme RFC 3986 utilise %20. Les deux sont valides dans des contextes differents.

Quand dois-je encoder du texte pour une URL ?

Chaque fois que vous incluez des donnees utilisateur ou des caracteres speciaux dans les parametres de requete, les segments de chemin ou les identifiants de fragment. Cela empeche les caracteres comme & et = d'etre interpretes comme des delimiteurs d'URL.

Puis-je encoder une URL entiere ?

Non. Encoder une URL entiere echapperait les caracteres structurels comme :// et / rendant l'URL invalide. Encodez uniquement les composants individuels comme les valeurs de parametres et les segments de chemin.

Related Calculators

Disclaimer: This calculator is for informational and educational purposes only. Results are estimates and should not be considered professional expert advice. Consult a qualified professional before making decisions based on these calculations. See our full Disclaimer.