Encodeur d'entités XML
Échappe les cinq caractères que XML réserve, si bien que « Tom & Jerry <3 » devient « Tom & Jerry <3 », et ramène &, <, >, ' et " à des caractères simples. Un nom inconnu est refusé au lieu de passer. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- Tom & Jerry <3
- Mode de calcul
- Encode
- Résultat
- Tom & Jerry <3
- Encodage
- xml_entities
- Longueur de l'entrée
- 14
- Longueur de la sortie
- 21
Cet encodeur d'entités XML convertit les cinq caractères spéciaux que XML réserve à la structure du balisage en leurs entités nommées prédéfinies, et inverse le même mappage lorsque vous collez un texte échappé pour retrouver des caractères ordinaires. L'encodage réécrit l'esperluette, inférieur, supérieur, apostrophe et guillemet double afin que le contenu des éléments et les valeurs d'attributs restent sûrs sans casser les balises ni les délimiteurs. Le décodage n'accepte que les cinq formes prédéfinies &, <, >, ' et ", et échoue explicitement sur les noms inconnus, les références numériques ou les entités incomplètes, pour que les fautes de frappe ne survivent pas silencieusement dans le XML de production. Le chemin est entièrement déterministe : le même texte et le même mode produisent toujours le même résultat, sans appels réseau, sans sels aléatoires et sans raccourcis liés à la date. Des contrôles simples incluent l'encodage de Tom & Jerry en Tom & Jerry et le décodage de <tag> en chevrons.
Que sont les cinq entités XML prédéfinies et que renvoie cet outil
XML définit exactement cinq entités de caractère prédéfinies que tout processeur conforme doit reconnaître sans déclaration DTD. L'esperluette commence une référence de caractère ou d'entité, si bien qu'une esperluette littérale dans le texte ou les attributs doit s'écrire & si vous visez le glyphe et non le début d'une autre référence. Inférieur et supérieur ouvrent et ferment les balises, ils deviennent donc < et > lorsque vous voulez ces symboles comme données.
L'apostrophe et le guillemet double délimitent souvent les valeurs d'attribut, ils deviennent ' et " lorsqu'ils apparaissent dans des attributs quotés du même style. Cette page met en œuvre cet ensemble classique d'encodage sur le chemin encode et l'inverse sur decode : seules ces cinq formes nommées sont réécrites. Contrairement à un outil général d'entités HTML, cette page n'accepte pas , © ni des centaines d'autres noms HTML, et n'étend pas les références numériques décimales &#N; ni hexadécimales &#xH;.
Ce contrat étroit convient aux auteurs qui ont besoin d'une hygiène stricte des entités XML prédéfinies plutôt que d'une table complète d'entités HTML.
Où l'encodage et le décodage d'entités XML s'intègrent aux flux de balisage
Les équipes frontend et backend encodent titres et libellés dynamiques avant de les placer dans le contenu d'éléments ou des attributs quotés, afin qu'une seule esperluette ou un seul chevron ne puisse casser le balisage environnant. Les auteurs de pipelines décodent des exports saturés d'entités issus de systèmes hérités pour que le code applicatif travaille avec de vraies guillemets et esperluettes plutôt que des séquences littérales &.
Les ingénieurs qualité génèrent des paires déterministes d'encode et de decode pour les tests de contrat, afin qu'un middleware affirmant le support des entités XML ne bascule pas silencieusement vers des noms uniquement HTML ou des références numériques entre versions. Les enseignants utilisent le même outil pour expliquer la différence entre les cinq entités XML prédéfinies, les entités nommées HTML et les références numériques que certains parseurs HTML acceptent plus librement.
Cas d’usage
Texte sûr pour éléments et attributs XML
Encodez titres, libellés et extraits utilisateur pour que esperluettes, guillemets et chevrons ne cassent ni balises ni attributs dans un XML bien formé.
Nettoyage de flux et configs hérités
Décodez les cinq entités XML prédéfinies issues de flux exportés, configs ou champs de base de données en Unicode simple pour des processeurs modernes.
Questions fréquentes
Combien coûte l'encodeur d'entités XML ?
Il est gratuit dans votre navigateur sur cette page.
Quels caractères sont encodés ?
Le mode encode réécrit &, <, >, ' et " en &, <, >, ' et ". Les autres caractères restent inchangés.
Que se passe-t-il si une entité est inconnue ou numérique ?
Seuls &, <, >, ' et " sont acceptés ; les noms HTML et les formes &#N; / &#xH; sont rejetés.
Le résultat est-il déterministe ?
Oui. Le même texte et le même mode produisent toujours le même résultat, sans réseau, aléatoire ni comportement lié à la date.
Pourquoi obtient-on &lt; en encodant un texte deux fois ?
Parce que l'encodage réécrit chaque esperluette, y compris celle qui ouvre une entité déjà écrite. Si vous repassez un texte échappé dans l'encodage, < devient &lt; : encodez le texte brut une seule fois et utilisez le décodage pour revenir.
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/xml-entities \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Tom & Jerry <3"}'const res = await fetch("https://api.kit.forhosting.com/enc/xml-entities", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Tom & Jerry <3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/xml-entities",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Tom & Jerry <3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/xml-entities", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Tom & Jerry <3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Tom & Jerry <3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/xml-entities", 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": "Tom & Jerry <3"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.xml_entities",
"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 gratuitement dans le navigateur pour l'hygiène des configurations et le nettoyage de contenu, ou appelez l'API à $0.002 par requête réussie lorsque les pipelines exigent des transformations d'entités XML reproductibles en CI et services backend.
Que sont les cinq entités XML prédéfinies et que renvoie cet outil
La réponse JSON inclut toujours result pour la chaîne transformée, mode qui reprend encode ou decode, encoding fixé à xml_entities, ainsi que input_length et output_length pour que les tests puissent affirmer les tailles. Encode signale aussi entities_encoded et decode signale entities_decoded afin de confirmer combien de caractères spéciaux ou de références nommées ont été réécrits. Il n'y a pas d'omission silencieuse partielle pour les entités complètes inconnues : chaque &name; complet est l'une des cinq formes prédéfinies, sinon la requête échoue avec invalid_input.
Comment text et mode sont lus et comment les résultats restent reproductibles
Encode parcourt la chaîne caractère par caractère et ne remplace que les cinq caractères spéciaux par leurs formes d'entité préférées, laissant lettres, chiffres et le reste d'Unicode inchangés pour que le texte lisible le reste. Comme l'esperluette est réécrite dans le même passage de gauche à droite que les autres spéciaux, vous ne doublez pas l'encodage d'un fragment déjà échappé lors d'un second passage accidentel, sauf si vous renvoyez du texte d'entités à encode. Decode recherche des séquences bien formées &name; : un nom commençant par une lettre, composé de lettres et de chiffres, terminé par un point-virgule. Les formes numériques telles que ' et ' sont aussi rejetées car elles ne figurent pas parmi les cinq entités nommées prédéfinies que cet outil implémente. Les ébauches incomplètes qui commencent une séquence de type entité sans point-virgule final échouent de façon fermée. Le champ de charge utile préféré est text, avec les alias input, value, s et xml, afin que formulaires, chaînes de requête et clients SDK réutilisent le même contrat sans renommer les colonnes. Mode vaut encode par défaut et accepte decode explicitement ; les alias op, direction et action mappent vers le même commutateur pour les scripts qui utilisent déjà ces noms, et escape ou unescape sont acceptés comme synonymes. Les esperluettes nues qui ne forment pas une référence complète restent intactes pour ne pas détruire les brouillons incomplets, mais un nom complet inconnu tel que ou ¬anentity; lève invalid_input avec un message qui nomme la mauvaise référence. Le plafond de longueur de cent mille caractères maintient la mémoire du Worker prévisible tout en couvrant modèles, documents d'exemple et la plupart des tampons de collage. Associez l'exécution gratuite dans le navigateur sur cette page à l'API tarifée lorsque vous avez besoin du mappage identique dans un pipeline automatisé sans réimplémenter vous-même les tables d'entités XML. Les entrées invalides renvoient invalid_input et ne sont pas facturées, ce qui maintient la validation peu coûteuse tandis que les transformations réussies restent à un prix fixe par élément de $0.002.
Où l'encodage et le décodage d'entités XML s'intègrent aux flux de balisage
Les développeurs rencontrent les cinq entités XML prédéfinies lorsqu'ils intègrent du texte utilisateur dans des fichiers de configuration, des charges SOAP ou REST en XML, des attributs SVG, des flux RSS et Atom, et tout document qui doit rester bien formé sous un parseur XML strict. Sur cette page le travail s'exécute entièrement dans votre navigateur ; via l'API chaque requête réussie coûte $0.002, la validation en échec n'est pas facturée et rien n'est stocké après la réponse. Cette division — exploration interactive gratuite et API au même prix — correspond au reste du catalogue KIT de niveau A et vous permet de passer d'une démonstration en classe à un pipeline automatisé sans changer le résultat encodé. Associez-le aux aides XML-to-JSON ou d'entités HTML lorsque vous avez besoin d'une conversion de balisage plus large, et à d'autres points d'accès d'encodage lorsque vous construisez un petit laboratoire d'outils texte gratuits et déterministes pour la CI et la documentation.
Cas d'intégration
Fixtures CI déterministes
Générez des paires encode/decode reproductibles pour tests unitaires, fichiers golden et contrôles de contrat sur des services qui émettent du XML.
Questions techniques
Quels modes sont pris en charge ?
mode=encode (par défaut) transforme les cinq caractères spéciaux en entités. mode=decode ne convertit que les cinq entités nommées prédéfinies en caractères.