Pourquoi les compteurs de caractères diffèrent

Une limite doit préciser ce qu’elle compte. Un emoji familial ressemble à un symbole mais contient plusieurs points de code et unités UTF-16. Comparons graphèmes visibles, longueur JavaScript et octets UTF-8.

Entrée et résultat

Intl.SegmenterUTF-16UTF-8 (bytes)
Hello world111111
é (U+00E9)112
é (U+0065 U+0301)123
👨‍👩‍👧‍👦11125
A↵B (LF)333

Interpréter le résultat

Apps24 utilise Intl.Segmenter. Espaces et sauts de ligne comptent ; les exclure ne supprime pas la ponctuation. Les deux é se ressemblent mais n’occupent pas autant d’octets. Une limite en octets ou en unités JavaScript peut donc refuser un texte pourtant court à l’écran.

Étape suivante

Essayez chaque exemple séparément, avec un vrai saut de ligne pour A↵B. Vérifiez si le formulaire limite caractères, octets ou mots et suivez sa règle. Prévoyez une marge pour ses conversions de sauts de ligne ou sa normalisation. Ne retirez pas les accents pour égaliser les comptes.

Utiliser l’outil

Limites et conditions de test

Les exemples sont testés avec Intl.Segmenter. Sans prise en charge, le navigateur compte les points de code et l’indique ; les emoji combinés changent de compte. La segmentation des mots dépend de la langue et peut différer des règles éditoriales.

Références

Apps24 confronte les exemples au code et aux tests de régression. Les essais de navigateur précisent leurs conditions, sans certifier tous les appareils. Signalez une erreur avec l’URL, l’entrée, le résultat attendu et le navigateur. N’envoyez jamais de mots de passe, de documents privés ni de données personnelles.