ForHosting KIT · Texte et IA

Outil de codage et décodage par longueur de plage

« aaabbcccc » s'encode en « a3b2c4 », et décoder « a3b2c4 » rend « aaabbcccc », lettre pour lettre. Chiffres et barres obliques inverses sont échappés pour que chaque résultat se relise sans ambiguïté, et tout caractère Unicode est accepté. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Texte
aaabbcccc
Mode de calcul
Encode
Vous obtenez
Résultat
a3b2c4

Le codage par longueur de plage remplace les répétitions consécutives d’un caractère par ce caractère suivi du nombre d’occurrences. Cet outil effectue l’opération dans les deux sens : choisissez l’encodage pour un texte ordinaire ou le décodage pour une valeur déjà encodée. Il prend en charge Unicode, respecte exactement l’ordre des caractères et applique une règle d’échappement simple afin que les chiffres et les barres obliques inverses puissent être restitués sans ambiguïté. Le résultat est déterministe et ne fait appel ni au réseau, ni au hasard, ni au stockage, ni à un modèle de langage.

Encodez les plages consécutives sans modifier leur ordre

Choisissez le mode d’encodage et saisissez la source dans le champ de texte. L’encodeur parcourt les caractères Unicode de gauche à droite, regroupe uniquement les caractères identiques adjacents et écrit chaque groupe sous la forme du caractère suivi d’un nombre décimal. Un bloc de trois lettres identiques devient ainsi cette lettre suivie du chiffre trois.

Deux caractères égaux séparés par un autre caractère restent deux plages distinctes, car ce codage décrit la répétition locale et non la fréquence globale. Une entrée vide donne un résultat vide, tandis qu’un caractère isolé reçoit le nombre un. Les chiffres et les barres obliques inverses exigent une précaution puisque les nombres sont eux-mêmes composés de chiffres.

Le format place donc une barre oblique inverse devant tout chiffre ou toute barre inverse littérale avant d’ajouter le nombre. La réponse contient le mode choisi et le résultat.

Décodez avec une validation stricte du format

Choisissez le mode de décodage lorsque le texte contient déjà des éléments RLE. Chaque élément doit comporter exactement une représentation de caractère suivie d’un entier décimal positif. Les caractères ordinaires autres que les chiffres ne nécessitent aucun préfixe.

Un chiffre ou une barre oblique inverse littérale doit être précédé d’une barre inverse afin de distinguer la donnée du nombre qui suit. Les nombres ne peuvent être nuls, commencer par zéro ni dépasser la précision entière sûre de JavaScript. Le décodeur refuse également un chiffre non échappé au début d’un élément, une barre inverse finale, un échappement inconnu ou un caractère dépourvu de nombre.

La sortie est limitée à un million de caractères Unicode et l’entrée à cent mille, ce qui empêche une petite chaîne assortie d’un nombre immense d’épuiser la mémoire.

Utilisez le codage RLE lorsque la répétition est pertinente

Le codage par longueur de plage est avant tout une représentation réversible, et non une méthode universelle de compression. Il convient particulièrement aux données contenant de longues répétitions continues : masques simples, marqueurs d’état, lignes de grilles, motifs de test ou exercices d’initiation à la compression. Un texte alterné ou composé surtout de caractères uniques peut devenir plus long, car chaque plage comporte un nombre ; l’outil ne masque pas cet inconvénient et ne choisit pas automatiquement un autre algorithme.

Dans un processus de production, conservez le résultat avec la documentation de cette convention d’échappement, car d’autres implémentations utilisent parfois des séparateurs, des crochets ou un nombre placé avant le caractère. Vous pouvez aussi vérifier un exemple en l’encodant, puis en décodant le résultat et en le comparant à l’original. Unicode est traité par point de code, donc les emoji courants comptent individuellement.

Expliquer un algorithme élémentaire de compression

Montrez comment les plages adjacentes deviennent des couples caractère-nombre, puis restaurez le texte pour illustrer la réversibilité.

Créer des jeux de test répétitifs compacts

Représentez de longues plages dans des masques, des grilles, des états ou des données synthétiques à l’aide d’une petite chaîne déterministe.

Contrôler une entrée encodée

Refusez les chaînes RLE mal formées avant leur arrivée dans un traitement, avec des erreurs précises pour les nombres et échappements invalides.

Comment les chiffres sont-ils encodés ?

Un chiffre littéral est précédé d’une barre oblique inverse, puis suivi de son nombre d’occurrences. Il ne peut donc pas être confondu avec ce nombre.

Les emoji et les autres caractères Unicode sont-ils acceptés ?

Oui. L’algorithme parcourt les points de code Unicode ; les caractères supplémentaires courants, notamment les emoji, sont donc comptés séparément.

Pourquoi un nombre commençant par zéro est-il refusé ?

Le format canonique emploie des entiers positifs sans zéro initial. Le refus des autres écritures garantit des valeurs prévisibles et révèle les erreurs.

Le codage RLE raccourcit-il toujours le texte ?

Non. Il est efficace pour de longues répétitions consécutives, mais les plages courtes ou alternées peuvent allonger le texte puisqu’elles incluent toutes un nombre.

Les lettres répétées mais non voisines sont-elles regroupées ?

Non. Seuls les caractères identiques et contigus forment une plage. Dans « abab », chaque lettre forme sa propre plage : le résultat est « a1b1a1b1 », plus long que l'original. Le codage décrit des répétitions locales, pas la fréquence globale.

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.

POSThttps://api.kit.forhosting.com/text/run-length-encode

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é.

curl -X POST https://api.kit.forhosting.com/text/run-length-encode \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"aaabbcccc"}'
{
  "text": "aaabbcccc"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "text.run_length_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.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_tokens20000
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Encodez les plages consécutives sans modifier leur ordre

À données identiques, elle fournit toujours exactement la même valeur JSON.

Décodez avec une validation stricte du format

Cette validation échoue volontairement de manière stricte : une valeur mal formée renvoie une erreur invalid_input plutôt qu’un résultat vraisemblable mais faux.

Utilisez le codage RLE lorsque la répétition est pertinente

Chaque élément traité par l’API coûte $0.002.

Quel est le prix d’une requête API ?

Chaque élément traité par l’API coûte $0.002. L’exécuteur du navigateur applique localement la même transformation déterministe.

Consulter la documentation complète du KIT →