Aucun upload, 100 % local, sans compte

Article

Mots, caractères et casse : comment le comptage de texte fonctionne vraiment

Compter du texte semble être la seule tâche qu'un ordinateur ne peut pas rater. Pourtant deux outils annoncent volontiers des nombres différents pour le même paragraphe, un emoji peut vous coûter 70 caractères de SMS, et les « 280 caractères » de X ne veulent pas dire ce qu'on croit. Derrière les corvées ordinaires, écrire sous une limite, renommer des variables, remplir une maquette, se cachent quelques règles qui valent d'être connues. Cet article les passe en revue, avec les petits utilitaires texte de ce site comme exemples concrets.

Ce qui compte comme un mot

La plupart des compteurs, le nôtre compris, définissent un mot comme les dactylographes : une suite de caractères visibles entre des espaces ou des retours à la ligne. Cette seule règle explique déjà l'essentiel des désaccords. « Chef-d'œuvre » : un mot ou trois ? Avec un découpage aux espaces, un. « L'article » : un mot ou deux ? Un. Les nombres, URL et adresses e-mail comptent aussi chacun pour un mot. La convention s'effondre pour les langues écrites sans espaces : en chinois ou en japonais, il n'y a pas d'espace où couper, un « compte de mots » n'a donc pas de sens et il faut travailler au caractère. L'estimation du temps de lecture empile une seconde convention : notre compteur de mots divise le total par 200 mots par minute, une moyenne courante de lecture silencieuse adulte ; traitez le résultat comme un ordre de grandeur de planification, pas comme une promesse.

Un caractère n'est pas toujours un symbole

Le comptage de caractères est plus trouble, car le texte Unicode a des couches. Ce que vous percevez comme un caractère (un graphème) peut être construit de plusieurs points de code, et chaque point de code occupe une ou deux des unités de 16 bits que compte la propriété length de JavaScript. L'emoji visage souriant est un graphème mais deux de ces unités : un compteur naïf dit 2. Un emoji famille, assemblé en joignant plusieurs emoji de personnes, fait un graphème, cinq points de code et huit unités. Même le texte ordinaire a ce problème : « café » peut être stocké avec é en un seul point de code, ou comme un e suivi d'un accent combinant, identiques à l'écran, différents au comptage. Voilà pourquoi deux compteurs divergent : ils mesurent des couches différentes. Les règles de regroupement des points de code en caractères perçus sont normalisées dans l'annexe de segmentation de texte d'Unicode (UAX #29), et les compteurs sérieux la suivent.

Trois chaînes mesurées sur trois couches Unicode : un emoji visage souriant fait 1 graphème et 2 unités UTF-16, un emoji famille fait 1 graphème, 5 points de code et 8 unités, et un café décomposé fait 4 graphèmes mais 5 points de code

Les limites pour lesquelles on compte vraiment

Les limites de caractères, c'est là où compter devient de l'argent. Un SMS transporte 160 caractères dans l'alphabet compact GSM-7, mais un seul caractère hors de cet alphabet (un emoji, ou une lettre qu'il ne couvre pas) fait basculer tout le message en UCS-2 et la limite tombe à 70 ; les messages longs se découpent en parties de 153 ou 67 caractères, chacune facturée. X autorise 280 caractères par post, mais les pondère : chaque URL compte pour 23 quelle que soit sa longueur réelle, et la plupart des emoji et des caractères CJK comptent pour 2. Les extraits de recherche ont des limites molles : Google tronque titres et descriptions à la largeur en pixels, donc les fameux 60 caractères de titre et 155 de description sont des conventions de travail, pas des garanties. Quand une limite compte, comptez avec les règles de la plateforme, et gardez de la marge.

La casse est une convention, et chaque style a sa place

Changer la casse semble trivial jusqu'aux conventions empilées dessus. La prose connaît le Title Case, favori des titres de presse américains, et la casse de phrase, que préfèrent la plupart des guides de style européens. Le code a ses propres familles : camelCase pour les variables en JavaScript et en Java, PascalCase pour les noms de classes et de composants, snake_case en Python et dans les bases de données, SCREAMING_SNAKE_CASE pour les constantes, et kebab-case pour les classes CSS, les noms de fichiers et les slugs d'URL, où les minuscules évitent le piège classique des liens qui ne diffèrent que par la casse. Convertir une poignée d'identifiants à la main, ça va ; en convertir quatre-vingts, c'est ainsi que naissent les coquilles. Un convertisseur de casse applique la transformation mécaniquement, y compris les parties délicates, comme le sort des acronymes et des séparateurs existants.

L'expression user profile page écrite dans six styles de casse : camelCase, PascalCase, snake_case, SCREAMING_SNAKE_CASE, kebab-case et Title Case

Texte de remplissage, et fichiers que votre téléphone refuse d'ouvrir

Deux corvées de plus complètent la panoplie. On juge une maquette avec du texte de remplissage parce que de vraies phrases attirent l'attention sur leur sens ; le lorem ipsum fonctionne précisément parce qu'il est presque, mais pas tout à fait, du latin lisible. Notre générateur en produit au paragraphe, à la phrase ou au mot, pour remplir une maquette à des longueurs réalistes plutôt qu'avec un bloc collé en boucle. Et quand on vous envoie un fichier .md, .json, .csv ou .log qu'un téléphone refuse d'ouvrir, une visionneuse de texte dans le navigateur l'affiche sans installer d'éditeur ni faire suivre le fichier à un site de conversion. Tout ce qui précède, comptage compris, tourne entièrement dans votre navigateur : le texte ne quitte jamais votre appareil, ce qui compte plus que d'habitude quand ce que vous mesurez est un brouillon, un contrat ou un journal plein de chemins internes.

Outils mentionnés dans cet article

Questions fréquentes

Combien de mots tiennent sur une page ?

Les conventions de l'édition tournent autour de 500 mots pour une page à interligne simple et d'environ 250 pour une page à double interligne, avec une police standard de 12 points sur A4 ou lettre. Les documents réels s'écartent de ces chiffres à chaque changement de police, de marge ou de titre, et c'est pourquoi devoirs et candidatures précisent de plus en plus un nombre de mots plutôt qu'un nombre de pages. Si vous avez le texte, comptez-le directement et sautez l'estimation ; les conventions de page ne servent qu'avant que le texte existe.

Que veut dire lorem ipsum, au juste ?

C'est du latin brouillé, pas du charabia. Le passage standard est découpé et remélangé depuis le De finibus bonorum et malorum de Cicéron, un texte philosophique de 45 av. J.-C. ; le fragment « dolorem ipsum » signifie « la douleur elle-même ». Le brouillage est le but : le texte ressemble à une langue naturelle, avec des longueurs de mots et un rythme de phrase plausibles, mais résiste à la lecture, si bien qu'on juge la mise en page et pas le texte. Sa diffusion moderne est généralement attribuée aux planches de transfert Letraset des années 1960, puis aux logiciels de PAO des années 1980.

Pourquoi une plateforme compte-t-elle moins de caractères que mon compteur ?

Parce que les plateformes comptent avec leurs propres pondérations. X part de 280 mais facture chaque URL 23 caractères, et la plupart des emoji et des caractères CJK 2 chacun. Les passerelles SMS font basculer tout le message de l'alphabet GSM-7 à 160 caractères vers le mode UCS-2 à 70 dès qu'un seul caractère l'exige. Et n'importe quelle plateforme peut compter des unités de code plutôt que des graphèmes : un seul emoji famille peut consommer 8 unités de la limite. Quand le chiffre du bouton contredit votre compteur, ce sont les règles de la plateforme qui gagnent ; écrivez avec de la marge ou vérifiez sur le compteur de la plateforme avant d'envoyer.

Sources