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.Segmenter | UTF-16 | UTF-8 (bytes) |
Hello world | 11 | 11 | 11 |
é (U+00E9) | 1 | 1 | 2 |
é (U+0065 U+0301) | 1 | 2 | 3 |
👨👩👧👦 | 1 | 11 | 25 |
A↵B (LF) | 3 | 3 | 3 |
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’outilLimites 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.