Encodeur d'URL en ligne

Encoder les caractères spéciaux dans les URL

Essayer un exemple

Texte brut / URL

Encodé

Fonctionne localement · Sûr pour coller des secrets
Sortie encodée...
Mode :

Qu'est-ce que l'encodage d'URL ?

L'encodage d'URL (aussi appelé encodage en pourcentage) est un mécanisme permettant d'encoder des informations dans un Identificateur de Ressource Uniforme (URI) afin que seuls les caractères autorisés par RFC 3986 apparaissent dans la chaîne finale. Tout caractère qui n'est pas un caractère non réservé (A–Z, a–z, 0–9, -, _, ., ~) est remplacé par un signe pourcentage suivi de deux chiffres hexadécimaux représentant la valeur d'octet UTF-8 du caractère — par exemple, un espace devient %20 et & devient %26.

L'encodage en pourcentage est nécessaire car les URLs ne peuvent contenir qu'un ensemble limité de caractères ASCII. Lorsqu'une URL inclut des caractères hors de cet ensemble — espaces, lettres Unicode, symboles comme &, = ou / utilisés comme valeurs littérales plutôt que comme délimiteurs structurels — ces caractères doivent être encodés pour éviter que l'analyseur d'URL ne les interprète mal. C'est particulièrement critique pour les valeurs de chaîne de requête, où & ou = non encodés briseraient la structure des paramètres.

Pourquoi utiliser cet outil ?

Voyez instantanément comment votre texte est encodé dans les deux modes, avec une comparaison côte à côte en direct — sans avoir besoin d'écrire du code pour vérifier les cas limites.

Aperçu en direct
La sortie se met à jour au fur et à mesure de la saisie. Essayez différentes entrées et voyez instantanément quels caractères sont encodés et lesquels sont préservés.
🔀
Deux modes
Basculez entre encodeURIComponent (pour les valeurs) et encodeURI (pour les URLs complètes) sans quitter la page.
🔒
Côté client uniquement
Tout l'encodage s'exécute localement dans votre navigateur. Les paramètres de requête sensibles et les jetons ne touchent jamais un serveur.
📋
Copier en un clic
Copiez la sortie encodée dans le presse-papiers d'un seul bouton. Prêt à coller directement dans votre code, terminal ou barre d'adresse du navigateur.

Comment utiliser cet encodeur d'URL en ligne

Aucun compte, aucune installation. Collez ou saisissez votre texte dans le champ de saisie et le résultat encodé en pourcentage apparaît instantanément. Tout s'exécute dans votre navigateur — vos données ne quittent jamais votre appareil.

  1. 1
    Collez votre texte ou URL
    Entrez n'importe quelle chaîne — la valeur d'un paramètre de requête, une URL complète, un segment de chemin ou un payload JSON. L'encodeur la traite caractère par caractère selon la RFC 3986.
  2. 2
    Choisissez le mode d'encodage
    Sélectionnez encodeURIComponent pour encoder des valeurs de paramètres individuels (encode tout sauf les caractères non réservés). Sélectionnez encodeURI pour encoder une URL complète en préservant ses caractères structurels comme ://?#&=.
  3. 3
    Copiez la sortie encodée
    La chaîne encodée en pourcentage apparaît instantanément. Cliquez sur Copier pour récupérer le résultat et le coller directement dans votre appel API, action de formulaire ou fichier de configuration.
  4. 4
    Décodez si nécessaire
    Vous avez fait une erreur ou souhaitez vérifier le résultat ? Passez à l'outil Décodeur d'URL en un clic pour inverser l'encodage.

Quels caractères sont encodés ?

RFC 3986 divise les caractères d'URL en deux catégories : les caractères non réservés (jamais encodés) et les caractères réservés (ont une signification spéciale — encodés ou préservés selon le contexte). Le tableau ci-dessous montre comment les deux fonctions JavaScript traitent les caractères clés :

Car.Signification dans l'URLencodeURIComponentencodeURI
Spaceword separator%20%20
+plus sign%2B%2B
/path separator%2F/ (kept)
?query start%3F? (kept)
#fragment%23# (kept)
&param separator%26& (kept)
=param value%3D= (kept)
@auth separator%40@ (kept)
:scheme / port%3A: (kept)
%percent literal%25%25
~unreserved~ (kept)~ (kept)
-_.~unreserved setkept as-iskept as-is

encodeURIComponent vs encodeURI

JavaScript fournit deux fonctions d'encodage avec des comportements très différents. Choisir la mauvaise est l'un des bugs les plus courants dans la gestion des URLs :

encodeURIComponent()
Encode tout sauf le jeu de caractères non réservés (A–Z a–z 0–9 - _ . ~). C'est le bon choix pour encoder des valeurs individuelles de paramètres de requête, des segments de chemin ou toute valeur qui sera intégrée dans une URL. Elle encodera /, ?, # et & ainsi que tous les autres caractères réservés.
encodeURI()
Préserve toute la structure de l'URL en laissant les caractères réservés (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) non encodés. Utilisez-la uniquement lorsque vous avez une URL complète avec une structure que vous souhaitez préserver, et que vous n'avez besoin d'encoder que les caractères non ASCII ou illégaux qu'elle contient.

Cas d'utilisation courants

Paramètres de chaîne de requête
Encodez les valeurs des paramètres avant de les ajouter à une URL : name=John%20Doe plutôt que name=John Doe. Les espaces et caractères spéciaux non encodés casseront les analyseurs d'URL et produiront des résultats inattendus.
Construction de requêtes API
Les API REST requièrent des paramètres de requête correctement encodés. Encoder les valeurs avec encodeURIComponent empêche l'injection de paramètres supplémentaires via des caractères comme & et = intégrés dans les valeurs.
Soumission de données de formulaire
Les formulaires HTML soumettent les données en application/x-www-form-urlencoded par défaut. Comprendre l'encodage en pourcentage aide à déboguer ce que le navigateur envoie et ce que le serveur reçoit.
Segments de chemin avec caractères spéciaux
Les noms de fichiers ou identifiants contenant des espaces, des barres obliques ou des caractères unicode doivent être encodés en pourcentage lorsqu'ils sont utilisés comme segments de chemin d'URL : /files/my%20document.pdf.
OAuth et jetons d'authentification
OAuth 1.0a et certains protocoles d'authentification exigent que la chaîne de base soit construite à partir de noms et valeurs de paramètres encodés en pourcentage selon un algorithme de normalisation strict.
Liens profonds et URLs de partage
Lors de la génération d'URLs partageables intégrant du contenu utilisateur (requêtes de recherche, état des filtres, coordonnées), encodez toutes les valeurs dynamiques pour éviter les liens cassés et les XSS via la manipulation d'URL.

Exemples de code

Comment encoder des chaînes d'URL dans les langages et environnements populaires :

JavaScript (browser / Node.js)
// Encode a query parameter value (most common case)
encodeURIComponent('hello world & more') // → "hello%20world%20%26%20more"

// Encode a complete URL (preserves ://?#& structure)
encodeURI('https://example.com/path?q=hello world') // → "https://example.com/path?q=hello%20world"

// Build a query string safely
const params = new URLSearchParams({ q: 'hello world', lang: 'en' })
const url = `https://example.com/search?${params}` // uses + for spaces
Python
from urllib.parse import quote, urlencode, quote_plus

# Encode a path segment or query value
quote('hello world & more')          # → 'hello%20world%20%26%20more'

# Encode for application/x-www-form-urlencoded (space → +)
quote_plus('hello world')            # → 'hello+world'

# Build a query string
urlencode({'q': 'hello world', 'lang': 'en'})  # → 'q=hello+world&lang=en'
Node.js (URL API)
const url = new URL('https://example.com/search')
url.searchParams.set('q', 'hello world & more')
url.searchParams.set('lang', 'en')
console.log(url.toString())
// → https://example.com/search?q=hello+world+%26+more&lang=en
CLI (curl / bash)
# curl automatically percent-encodes --data fields
curl -G "https://example.com/search" --data-urlencode "q=hello world & more"

# Manual encoding with Python one-liner
python3 -c "from urllib.parse import quote; print(quote('hello world'))"

Encodeur d'URL vs. alternatives

Plusieurs outils peuvent encoder du texte en pourcentage, mais ils diffèrent en contrôle, confidentialité et contexte.

Cet outil
Basé sur le navigateur, instantané, privé. Prend en charge les modes encodeURIComponent et encodeURI. Aucune donnée envoyée à un serveur. Gère les entrées Unicode complètes.
Barre d'adresse du navigateur
Les navigateurs encodent les URL automatiquement quand vous les collez, mais seulement partiellement — ils conservent de nombreux caractères spéciaux pour la lisibilité. Ne convient pas pour encoder des valeurs de paramètres.
URLSearchParams / urllib
L'approche programmatique correcte pour construire des URL en JavaScript ou Python. Utilisez cet outil pour un encodage rapide ou pour vérifier ce que votre code produira.

Foire aux questions

Quelle est la différence entre %20 et + pour les espaces ?
Les deux représentent un espace, mais dans des contextes différents. %20 est la représentation standard d'un espace encodé en pourcentage et est valide partout dans une URL. Le signe + représente un espace uniquement dans le format application/x-www-form-urlencoded (soumissions de formulaires HTML). Dans un chemin d'URL ou une valeur de requête brute, + est un signe plus littéral, pas un espace. Utilisez %20 pour une compatibilité maximale.
Quand utiliser encodeURIComponent vs encodeURI ?
Utilisez encodeURIComponent pour les valeurs individuelles (paramètres de requête, segments de chemin, fragments hash). Utilisez encodeURI uniquement lorsque vous avez une URL complète et souhaitez préserver sa structure. Une erreur courante est d'utiliser encodeURI sur une valeur de requête — elle laissera & et = non encodés, cassant la chaîne de requête.
L'encodage d'URL gère-t-il les caractères Unicode ?
Oui. Les caractères non ASCII sont d'abord convertis en leur représentation d'octets UTF-8, puis chaque octet est encodé en pourcentage. Par exemple, le signe euro (U+20AC) s'encode en %E2%82%AC — ses trois octets UTF-8. encodeURIComponent et encodeURI gèrent cela correctement dans tous les navigateurs modernes.
Le double encodage est-il un problème ?
Oui. Si vous encodez une chaîne déjà encodée, %20 devient %2520 (le % lui-même est encodé en %25). Encodez toujours des valeurs brutes, pas des valeurs déjà encodées. En cas de doute, décodez d'abord, puis réencodez.
Quels caractères sont toujours sûrs dans les URLs ?
Les caractères non réservés définis par RFC 3986 sont toujours sûrs et n'ont jamais besoin d'être encodés : majuscules A–Z, minuscules a–z, chiffres 0–9, tiret (-), tiret bas (_), point (.) et tilde (~). Tout le reste doit être encodé en pourcentage lorsqu'il est utilisé comme valeur plutôt que comme délimiteur structurel.
Pourquoi certaines URLs contiennent-elles des hex majuscules (%2F) et d'autres des minuscules (%2f) ?
Les deux sont valides. RFC 3986 spécifie que les séquences encodées en pourcentage sont insensibles à la casse, donc %2F et %2f sont équivalents. Cependant, le même RFC recommande d'utiliser des chiffres hexadécimaux majuscules pour la cohérence. La plupart des navigateurs et bibliothèques produisent des majuscules.
Cet outil encode-t-il l'URL complète ou seulement les paramètres ?
Les deux. Utilisez le mode encodeURIComponent pour encoder des valeurs de paramètres de requête individuels (le cas d'usage le plus courant). Utilisez le mode encodeURI pour encoder une URL complète en préservant ses caractères structurels comme ://, ?, # et &.
Y a-t-il une limite de longueur pour l'encodage ?
Aucune limite côté serveur — l'outil s'exécute entièrement dans votre navigateur. Les limites pratiques dépendent de la mémoire de votre navigateur. Pour les très grandes entrées ou le traitement par lots, utilisez encodeURIComponent dans un script.