Encoder une URL
Une URL n’accepte qu’un jeu de caractères restreint : un espace, un accent ou une esperluette dans un paramètre doit être encodé pour ne pas casser le lien. Cet outil applique ce percent-encoding, et le décode dans l’autre sens pour rendre une adresse lisible. Le traitement a lieu dans votre navigateur, sans aucun envoi.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Pourquoi encoder une URL
Dans une adresse web, certains caractères ont un rôle : le point d’interrogation ouvre les paramètres, l’esperluette les sépare, l’espace n’y a pas sa place. Pour transporter une valeur qui contient ces caractères — un terme de recherche avec des accents, une adresse e-mail, un chemin avec espaces — il faut les encoder sous la forme « %xx ». Sans quoi le lien se coupe au mauvais endroit ou pointe ailleurs.
Encoder ou décoder à la demande
L’outil traite les deux sens. Collez une valeur pour obtenir sa version encodée, prête à insérer dans un paramètre. Ou collez une adresse truffée de « %20 » et de « %C3 » pour la retrouver lisible, avec ses espaces et ses accents rétablis. C’est souvent ce décodage qui dépanne, quand on lit une adresse copiée depuis un navigateur et qu’on veut comprendre ce qu’elle contient vraiment.
Composant entier ou URL complète
Attention à ne pas tout encoder aveuglément : encoder une URL entière transformerait aussi les barres obliques et le point d’interrogation qui la structurent. On encode la valeur d’un paramètre, pas les séparateurs. Le traitement s’exécute dans votre navigateur, sans transmission. Pour l’intégrer à un script via l’API, l’appel coûte $0.002 la requête, en dollars US ; l’usage manuel reste gratuit et illimité.
Cas d’usage
Construire un lien de recherche
Camille Moreau encode un terme accentué avant de l’insérer dans une URL de recherche, pour que le lien fonctionne quel que soit le navigateur.
Lire une adresse copiée
Nadia Benali décode une URL pleine de « %20 » reçue par e-mail et retrouve d’un coup d’œil la page concernée.
Passer un paramètre propre
Le Studio Lumen SAS encode une valeur contenant une esperluette avant de la transmettre dans un lien de campagne, pour qu’elle ne coupe pas l’adresse.
Questions fréquentes
Qu’est-ce que le percent-encoding ?
C’est la façon de représenter dans une URL les caractères interdits ou réservés, sous la forme « %xx ». Un espace devient « %20 », par exemple. Cela permet de transporter accents, espaces et symboles sans casser le lien.
Dois-je encoder l’URL entière ?
Non. Encodez seulement la valeur d’un paramètre. Encoder l’adresse complète transformerait aussi les barres obliques et le point d’interrogation qui la structurent, et le lien deviendrait invalide.
Pourquoi vois-je des « %C3 » dans une adresse ?
Ce sont des caractères accentués encodés octet par octet. Décodée, la séquence redevient la lettre d’origine, « é » ou « à » par exemple. L’outil rétablit le texte lisible.
Le contenu est-il envoyé sur vos serveurs ?
Non. L’encodage et le décodage se font dans votre navigateur ; aucune valeur n’est transmise ni conservée.
Y a-t-il un coût ?
Aucun dans le navigateur : gratuit et sans limite. Pour automatiser la conversion via l’API, comptez $0.002 par requête, en dollars US.
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/dev/url-encode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/url-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/url-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/url-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/url-encode", 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
{
"items": [
"valor-1",
"valor-2"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.url_encode",
"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. |