Ir para o conteúdo
TextArray
Totalmente local

Contador de bytes UTF-8

Meça o tamanho real do texto em bytes UTF-8, unidades UTF-16, pontos de código e grafemas.

Entrada

Contador de bytes UTF-8

A contagem de caracteres e o tamanho de bytes não são a mesma coisa. Em UTF-8, as letras simples do inglês ocupam um byte cada, mas "é" ocupa dois, a maioria dos caracteres CJK ocupa três e um emoji como 👋 ocupa quatro - portanto, uma mensagem de 160 caracteres pode facilmente ter muito mais do que 160 bytes. Cole qualquer texto e este contador relata seu tamanho exato de bytes UTF-8, as unidades de código UTF-16 que o .length do JavaScript reportaria, o número de pontos de código Unicode, a contagem de grafemas (caracteres percebidos pelo usuário, portanto, uma família 👨‍👩‍👧 conta como um) e o número de linhas, mais o tamanho armazenado em B, KB ou MB para ambas as codificações.

Essa análise responde rapidamente a perguntas práticas: essa string caberá em uma coluna VARCHAR(255) medida em bytes, um segmento SMS, um limite de carga útil de 64 KB, um orçamento de cabeçalho HTTP, uma cota localStorage? Por que um banco de dados reclama de uma string de “160 caracteres” e por que um emoji conta como dois caracteres em um sistema e um em outro? O contador mostra todas as definições concorrentes de "comprimento" lado a lado para que você possa ver exatamente qual delas seu limite usa.

As terminações de linha também são importantes para o tamanho dos bytes: um arquivo salvo com terminações CRLF do Windows é um byte por linha maior que o mesmo arquivo com terminações Unix LF. A opção de finais de linha permite medir o texto conforme colado ou como seria uma vez convertido para LF ou CRLF.

Tudo é computado localmente em seu navegador usando a API TextEncoder padrão — o texto que você cola nunca é carregado, portanto, arquivos de configuração, tokens e mensagens privadas podem ser medidos com segurança.

FAQ

Por que a contagem de bytes é maior que a contagem de caracteres?
UTF-8 é uma codificação de largura variável: letras ASCII ocupam 1 byte, letras latinas acentuadas 2, a maioria dos caracteres CJK 3 e emoji 4. Qualquer texto não ASCII é, portanto, maior em bytes do que em caracteres.
Qual é a diferença entre pontos de código e grafemas?
Um ponto de código é um único valor Unicode; um grafema é o que o leitor vê como um caractere. Emoji construídos a partir de vários pontos de código unidos por ZWJ, ou letras com acentos combinados, são vários pontos de código, mas um grafema.
Qual número um limite de coluna do banco de dados usa?
Depende do banco de dados e da definição da coluna - os limites MySQL utf8mb4 VARCHAR contam caracteres, enquanto muitos limites baseados em bytes (chaves Redis, tamanhos de índice, algumas APIs) contam bytes UTF-8. Esta ferramenta mostra ambos para que você possa verificar o correto.
Como os finais de linha mudam de tamanho?
As terminações CRLF do Windows são dois bytes por quebra de linha, as terminações LF do Unix são um. Mude a opção de finais de linha para ver o tamanho do texto como seria salvo com qualquer uma das convenções.
Meu texto é carregado em algum lugar?
A contagem é executada inteiramente no seu navegador com a API TextEncoder integrada e seu texto nunca sai do seu dispositivo.