SoupCalc

Calculatrice de longueur de chaîne pour les caractères Unicode et les octets UTF-8

Ce que calcule cet outil

La calculatrice indique un compte orienté caractères fondé sur les points de code Unicode et un compte orienté stockage fondé sur les octets UTF-8. En interne, l'assistant vérifié distingue aussi les unités de code UTF-16, ce qui explique pourquoi la longueur native d'une chaîne JavaScript peut différer du résultat visible pour certains emoji et caractères supplémentaires.

« Caractère » a plusieurs significations en informatique. Un compte de points de code est plus conscient d'Unicode qu'un compte d'unités UTF-16, mais ce n'est toujours pas nécessairement le nombre de graphèmes perçus par l'utilisateur.

Entrées

Saisissez ou collez n'importe quel texte, y compris des espaces, des sauts de ligne, des emoji, des marques de combinaison et des écritures non latines. Le calcul a lieu dans le navigateur et n'a pas besoin d'envoyer le texte à un service de longueur.

Préservez les fins de ligne exactes lorsqu'une limite d'octets compte. Un saut de ligne CRLF de Windows utilise deux points de code et deux octets UTF-8, tandis qu'un saut LF en utilise un. La normalisation Unicode peut aussi changer les comptes de points de code et d'octets sans changer le texte apparent.

Méthode et formule

Le compte de points de code parcourt la chaîne par points de code Unicode plutôt que par indexation des unités UTF-16 brutes. Le compte UTF-16 est la longueur en unités de code du runtime du langage. Le compte d'octets encode la chaîne en UTF-8 et compte les octets résultants.

Les caractères ASCII de base utilisent une unité UTF-16 et un octet UTF-8. Beaucoup de caractères accentués utilisent un point de code mais deux octets UTF-8. Les emoji supplémentaires utilisent couramment un point de code, deux unités de code UTF-16 et quatre octets UTF-8.

Un graphème tel qu'une séquence d'emoji jointe par des assembleurs de largeur nulle peut contenir plusieurs points de code tout en apparaissant comme un seul symbole. Cet outil n'applique pas de segmentation en graphèmes.

Exemple chiffré

Saisissez A😀é.

  • Points de code Unicode : A, 😀 et é, soit 3 au total.
  • Unités de code UTF-16 : 1 pour A, 2 pour 😀 et 1 pour é, soit 4 au total.
  • Octets UTF-8 : 1 pour A, 4 pour 😀 et 2 pour é, soit 7 au total.

La calculatrice visible indique 3 caractères et 7 octets. La valeur UTF-16 documentée de 4 explique pourquoi un compte JavaScript naïf .length serait en désaccord.

Comment interpréter le résultat

Utilisez les points de code pour valider une règle de protocole ou de données explicitement définie en points de code. Utilisez les octets UTF-8 pour les limites de charge utile, de base de données ou d'API définies en octets encodés. Ni l'un ni l'autre ne doit être substitué à une limite définie en graphèmes, en largeur d'affichage, en segments SMS ou en glyphes de police.

Lors de l'application d'une limite produit, documentez l'unité et la forme de normalisation. Un utilisateur ne devrait pas perdre du texte simplement parce que l'interface dit « caractères » tandis que le serveur refuse les octets.

Exactitude et limites

Le compte d'octets utilise spécifiquement UTF-8 ; UTF-16, UTF-32, les encodages hérités, la compression, l'échappement, la syntaxe JSON et le cadrage de transport ont des tailles différentes. L'outil ne normalise pas le texte et ne compte ni graphèmes, ni mots, ni lignes, ni colonnes, ni glyphes, ni largeur rendue.

Des chaînes visuellement identiques peuvent avoir des encodages différents — par exemple, une lettre accentuée précomposée versus une lettre de base plus une marque de combinaison. Les identifiants sensibles pour la sécurité exigent une politique Unicode documentée au-delà de la seule longueur.

Sources

Registre éditorial

Auteur : équipe éditoriale de SoupCalc

Dernière révision : 14 août 2026

Périmètre de la révision : l'itération sur les points de code, le comportement des substituts UTF-16, l'encodage UTF-8, les limites de graphèmes, les références de normes et les comptes A😀é de 3, 4 et 7 ont été vérifiés.