Sobre esta ferramenta
O contador centra-se na codificação. Apresenta separadamente pontos de código Unicode, grafemas visíveis, unidades de código UTF-16 e bytes UTF-8, evitando confundir string.length do JavaScript com uma contagem universal de caracteres.
Como utilizar
- Introduza texto, emojis ou caracteres com acentos combinados.
- Consulte pontos de código, caracteres sem espaços em branco e bytes UTF-8.
- Compare grafemas visíveis e unidades UTF-16. A página indica se o navegador não suporta a segmentação de grafemas.
- Copie o original ou carregue o exemplo para comparar as representações.
Exemplos de utilização
- 😀: 1 ponto de código Unicode, 2 unidades de código UTF-16 e 4 bytes UTF-8.
- 👨👩👧👦: 7 pontos de código Unicode e 1 grafema visível quando a segmentação grapheme está disponível.
- O e com acento combinado e o é pré-composto costumam ter o mesmo aspeto, mas o primeiro tem 2 pontos de código e o segundo tem 1.
Regras de contagem
Os caracteres e pontos de código são contados percorrendo o texto como com Array.from. As unidades UTF-16 correspondem ao comprimento da cadeia original e os bytes UTF-8 são calculados com TextEncoder. Os grafemas usam preferencialmente o modo grapheme de Intl.Segmenter. Não é aplicada normalização Unicode, preservando as diferentes codificações de caracteres combinados. As quebras originais contam para a codificação e uma quebra final produz uma última linha vazia. Limite por entrada: 2 000 000 de unidades de código UTF-16.
Utilizações comuns
- Verificar o tamanho UTF-8 de campos, ficheiros ou dados de uma API.
- Investigar diferenças de comprimento provocadas por emojis.
- Compreender a relação entre formas visíveis, pontos de código e unidades de codificação.
Privacidade
O texto, a leitura de ficheiros, as conversões e as pré-visualizações são processados localmente no navegador. A entrada não é enviada e não são usados servidores de processamento, bases de dados, API online ou CDN de terceiros. O conteúdo não é guardado automaticamente. A cópia e as transferências também são locais.
FAQ
Quantos caracteres tem um emoji?
Um emoji simples pode ter um ponto de código; famílias, bandeiras e combinações de tons de pele podem ter vários. Os grafemas aproximam-se mais do número de caracteres que uma pessoa vê.
Porque pode UTF-16 exceder o número de caracteres?
Os pontos de código fora do plano multilingue básico usam um par de substitutos UTF-16. Assim, um ponto de código pode ocupar duas unidades.
Os bytes UTF-8 correspondem ao tamanho do ficheiro?
Representam os bytes do texto atual em UTF-8, sem cabeçalhos adicionais, BOM ou metadados do sistema de ficheiros.
Os espaços são contados?
A contagem normal inclui espaços em branco. A contagem sem espaços em branco exclui espaços, tabulações, quebras de linha e outros espaços Unicode.
O que acontece sem Intl.Segmenter?
Os pontos de código, UTF-16 e UTF-8 continuam disponíveis. A área de grafemas indica que não é possível fornecer uma contagem fiável.