Por que contadores de caracteres divergem

Um limite precisa informar como conta. Um emoji de família parece um símbolo, mas contém vários pontos de código e unidades UTF-16. Compare grafemas, comprimento JavaScript e bytes UTF-8.

Entrada e resultado

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

Interpretar o resultado

O Apps24 usa Intl.Segmenter. Espaços e quebras contam; excluir espaços não remove pontuação. As duas é parecem iguais, mas ocupam bytes diferentes. Um limite em bytes ou unidades JavaScript pode rejeitar um texto visualmente curto.

Próximo passo

Teste cada exemplo separadamente, com uma quebra real em A↵B. Confira se o formulário limita caracteres, bytes ou palavras e siga sua regra. Deixe margem para normalização e conversões de quebra. Não remova acentos só para igualar contagens.

Usar a ferramenta

Limites e condições de teste

Os exemplos são testados com Intl.Segmenter. Navegadores antigos usam pontos de código e avisam; emojis combinados podem contar diferente. A divisão de palavras depende do idioma e pode divergir de regras editoriais.

Referências

O Apps24 compara os exemplos com a implementação e testes de regressão. Experimentos no navegador indicam suas condições, sem certificar todos os dispositivos. Relate erros com URL, entrada, resultado esperado e navegador. Não envie senhas, documentos privados ou dados pessoais.