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.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 |
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 ferramentaLimites 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.