Outil encodeURIComponent
Une espace devient %20, & devient %26 et = devient %3D : hello world & café se transforme en hello%20world%20%26%20caf%C3%A9 et tient dans une seule valeur de requête. Chaque valeur suit les règles d'encodeURIComponent ; le décodage les inverse. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- hello world & café
- Production
- hello%20world%20%26%20caf%C3%A9
- Mode de calcul
- Encode
- Entrée
- hello world & café
- Longueur
- 31
Lorsque vous construisez une chaîne de requête, une simple esperluette ou une espace non échappée suffit à scinder un paramètre et à casser une intégration. Cet outil encodeURIComponent applique exactement les mêmes règles que les fonctions JavaScript encodeURIComponent et decodeURIComponent : à l'aller, les caractères réservés deviennent des séquences percent-encoded, et au retour, les séquences %XX valides redeviennent un texte lisible.
Ce que protège réellement encodeURIComponent
Une URL complète n'est pas un bloc opaque unique. Les schémas, les séparateurs de chemin, les délimiteurs de requête et les marqueurs de fragment ont une signification structurelle. encodeURIComponent est la fonction à employer lorsque la valeur doit voyager comme donnée à l'intérieur de cette structure sans réécrire la structure elle-même.
Les espaces deviennent %20, les esperluettes %26, les signes égal %3D, et le texte non-ASCII, comme les lettres accentuées ou les emoji, est développé en séquences percent UTF-8 afin que les proxys et les serveurs ne se trompent pas sur les frontières d'octets. C'est là toute la différence avec encodeURI, qui laisse de nombreux caractères réservés intacts parce qu'il suppose que vous encodez une adresse entière.
Si vous encodez un lien https:// complet avec les règles de composant, les deux-points et les barres obliques se transforment en séquences % et le lien cesse de fonctionner. Si vous laissez un terme de recherche en texte libre non encodé et que vous le collez après ?, une esperluette insérée ressemble à un nouveau paramètre.
Cet outil utilise toujours la sémantique de composant, de sorte que chaque valeur peut être placée sans risque après une clé, entre des segments de chemin lorsque le segment est une donnée, ou à l'intérieur d'un corps de formulaire qui deviendra plus tard une requête.
Comment l'utiliser et lire le résultat
Envoyez un champ text contenant la chaîne qui vous intéresse et, en option, un champ mode réglé sur encode ou decode. encode est la valeur par défaut : le moteur exécute encodeURIComponent sur l'entrée et renvoie mode, l'entrée d'origine, la sortie transformée et la longueur de la sortie, afin que les pipelines puissent vérifier des budgets de taille sans seconde passe. decode exécute decodeURIComponent et renvoie la même structure avec la chaîne restaurée dans output. Les chaînes vides sont valides et font l'aller-retour vers des chaînes vides.
Un champ text manquant échoue également à la validation avant toute transformation. Préférez encoder chaque valeur, puis les assembler avec des caractères & et = littéraux, plutôt que d'encoder une chaîne de requête déjà construite, afin que les délimiteurs restent structurels et que seuls les caractères de charge utile soient échappés.
Où l'encodage de composant s'intègre aux flux réels
Les interfaces de recherche et de filtrage construisent des liens partageables à partir de phrases saisies par l'utilisateur qui contiennent des espaces, des guillemets et des écritures non latines ; encoder chaque champ avant l'assemblage garde le lien partagé stable d'un client de messagerie à l'autre et dans les applications de chat qui réécrivent les URL brutes.
Les outils de journalisation et de support affichent souvent des lignes de requête brutes avec des séquences percent ; décoder ces valeurs restitue les termes de recherche ou les noms de fichiers d'origine pour l'analyse, sans passer par une console jetable. Les migrations de données inversent des colonnes doublement encodées lorsque d'anciens exporteurs encodaient deux fois, ou appliquent un unique encodage de composant cohérent au stockage de valeurs qui seront ensuite insérées dans des redirections.
Les listes de contrôle pour l'enseignement et la revue de code s'appuient sur une référence encodeURIComponent réputée correcte, afin que les développeurs juniors puissent comparer les helpers propres à chaque langage au comportement de référence de JavaScript et repérer les bibliothèques qui traitent différemment les signes plus ou les tildes.
Cas d’usage
Valeurs de paramètres de requête sûres
Encodez les courriels, les noms et les filtres en texte libre avant de les ajouter à des paires ?clé=valeur, pour que les caractères réservés ne scindent jamais la chaîne de requête.
Décoder journaux de requêtes et exports
Retransformez les fragments de chemin ou de requête percent-encoded des journaux d'accès et des exports CSV en UTF-8 lisible, pour le support et l'analytique.
Contrôles de parité inter-piles
Comparez l'encodeur d'URL d'un autre langage à la sortie de JavaScript encodeURIComponent afin que des microservices hétérogènes s'accordent sur les règles d'échappement.
Questions fréquentes
Quelle est la différence entre encodeURIComponent et encodeURI ?
encodeURIComponent échappe les caractères réservés comme &, =, ? et / pour qu'une valeur soit sûre en tant que donnée. encodeURI laisse ces caractères de structure intacts pour des URL entières. Cet outil utilise toujours la sémantique de composant.
Que se passe-t-il si l'entrée à décoder est mal formée ?
Corrigez la chaîne ou traitez-la comme une donnée opaque au lieu de la décoder.
L'outil encodeURIComponent est-il gratuit ?
L'outil du navigateur est gratuit et s'exécute localement.
Gère-t-il l'Unicode et les emoji ?
Oui. L'encodage utilise des séquences percent UTF-8 conformes à JavaScript encodeURIComponent, de sorte que le texte accentué et les emoji font correctement l'aller-retour au décodage.
Faut-il encoder toute la requête ou chaque valeur ?
Encodez chaque valeur séparément, puis assemblez-les avec des & et = ordinaires. Encoder une requête déjà construite échappe aussi les séparateurs, et le serveur qui la reçoit ne sait plus où finit une valeur et où commence la suivante.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/enc/url-component \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello world & café"}'const res = await fetch("https://api.kit.forhosting.com/enc/url-component", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello world & café"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/url-component",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello world & café"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/url-component", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello world & café"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello world & café"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/url-component", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "hello world & café"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.url_component",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Utilisez-le pour préparer une valeur avant qu'elle n'entre dans une URL, pour inverser l'encodage issu de journaux ou de charges utiles de tiers, et pour obtenir un résultat déterministe, que vous l'exécutiez gratuitement dans le navigateur ou que vous appeliez l'API du KIT.
Comment appeler l'endpoint et lire le résultat
Les nombres et les booléens sont convertis en texte de la même manière que JavaScript les transforme en chaîne avant l'encodage, ce qui facilite les tests d'API rapides. Une séquence percent mal formée au décodage, comme un signe pourcent isolé ou une fin %X incomplète, déclenche invalid_input avec un message qui nomme l'échec du décodage ; ces tâches ne sont pas facturées. Comme le chemin est du parsing pur, sans réseau, ni modèle, ni horloge, ni source aléatoire, le même couple text et mode produit toujours le même objet JSON, sur l'outil gratuit du navigateur comme sur l'API payante. À $0.002 par requête réussie, le prix suit une infime transformation en périphérie : vous pouvez ainsi encoder des milliers de valeurs de requête dans un travail de nettoyage sans négocier de paliers.
Où l'encodage de composant s'intègre aux flux réels
Les webhooks sortants sont le cas classique : un courriel client, un objet de ticket ou une étiquette en texte libre doit figurer dans une URL de rappel sans casser l'analyseur du destinataire. Dans tous les cas, le contrat est le même : encodage ou décodage de composant, échec net sur une entrée percent invalide, sortie structurée que vous pouvez vérifier dans des tests de référence, et comportement identique gratuitement dans le navigateur ou via le solde KIT prépayé sur l'API.
Questions techniques
Puis-je encoder et décoder avec le même endpoint ?
Oui. Réglez mode sur encode (par défaut) ou decode. La réponse inclut toujours mode, input, output et length.