Aller au contenu
TextArray
Tout en local

Compteur d'octets UTF-8

Mesurez la taille réelle du texte en octets UTF-8, unités UTF-16, points de code et graphèmes.

Entrée

Compteur d'octets UTF-8

Le nombre de caractères et la taille des octets ne sont pas la même chose. En UTF-8, les lettres anglaises simples prennent un octet chacune, mais « é » en prend deux, la plupart des caractères CJK en prennent trois et un emoji comme 👋 en prend quatre — donc un message de 160 caractères peut facilement faire bien plus de 160 octets. Collez n'importe quel texte et ce compteur indique sa taille exacte en octets UTF-8, les unités de code UTF-16 que JavaScript .length rapporterait, le nombre de points de code Unicode, le nombre de graphèmes (caractères perçus par l'utilisateur, donc une famille 👨‍👩‍👧 compte pour une) et le nombre de lignes, plus la taille stockée en B, Ko ou Mo pour les deux encodages.

Cette répartition répond rapidement aux questions pratiques : cette chaîne s'adaptera-t-elle à une colonne VARCHAR(255) mesurée en octets, un segment SMS, une limite de charge utile de 64 Ko, un budget d'en-tête HTTP, un quota de stockage local ? Pourquoi une base de données se plaint-elle d'une chaîne de « 160 caractères » et pourquoi un emoji compte-t-il pour deux caractères dans un système et un dans un autre ? Le compteur affiche toutes les définitions concurrentes de « longueur » côte à côte afin que vous puissiez voir exactement laquelle utilise votre limite.

Les fins de ligne sont également importantes pour la taille des octets : un fichier enregistré avec les terminaisons Windows CRLF est plus grand d'un octet par ligne que le même fichier avec les terminaisons Unix LF. L'option de fin de ligne vous permet de mesurer le texte tel qu'il est collé ou tel qu'il le serait une fois converti en LF ou CRLF.

Tout est calculé localement dans votre navigateur à l'aide de l'API TextEncoder standard : le texte que vous collez n'est jamais téléchargé, les fichiers de configuration, les jetons et les messages privés peuvent donc être mesurés en toute sécurité.

FAQ

Pourquoi le nombre d’octets est-il supérieur au nombre de caractères ?
UTF-8 est un codage à largeur variable : les lettres ASCII prennent 1 octet, les lettres latines accentuées 2, la plupart des caractères CJK 3 et les emoji 4. Tout texte non-ASCII est donc plus grand en octets qu'en caractères.
Quelle est la différence entre les points de code et les graphèmes ?
Un point de code est une valeur Unicode unique ; un graphème est ce qu'un lecteur considère comme un seul caractère. Les emoji construits à partir de plusieurs points de code joints par ZWJ, ou de lettres avec des accents combinés, sont plusieurs points de code mais un seul graphème.
Quel nombre une limite de colonne de base de données utilise-t-elle ?
Cela dépend de la base de données et de la définition des colonnes : les limites MySQL utf8mb4 VARCHAR comptent les caractères tandis que de nombreuses limites basées sur les octets (clés Redis, tailles d'index, certaines API) comptent les octets UTF-8. Cet outil affiche les deux afin que vous puissiez comparer le bon.
Comment les fins de ligne changent-elles la taille ?
Les terminaisons Windows CRLF sont de deux octets par saut de ligne, les terminaisons Unix LF un. Basculez l’option de fin de ligne pour voir la taille du texte tel qu’il serait enregistré avec l’une ou l’autre convention.
Mon texte est-il téléchargé quelque part ?
Non. Le comptage s'exécute entièrement dans votre navigateur grâce à l'API TextEncoder intégrée et votre texte ne quitte jamais votre appareil.