O que esta ferramenta faz
Text Size calcula exatamente quanto espaço seu texto ocupa, em bytes, kilobytes e caracteres, usando a codificação UTF-8, padrão da web e dos sistemas mais modernos. É a ferramenta necessária quando um limite é medido em bytes em vez de caracteres, o que é mais comum do que as pessoas esperam.
Por que os bytes diferem dos caracteres
Em UTF-8, nem todo caractere tem um byte. Letras e dígitos do inglês simples ocupam um byte cada, portanto, para texto simples, a contagem de bytes corresponde à contagem de caracteres. Mas as letras acentuadas ocupam dois bytes, muitos símbolos e caracteres não latinos ocupam dois ou três e os emojis podem ocupar quatro. Isso significa que uma string de 100 caracteres pode ter mais de 100 bytes. Quando um sistema mede um limite em bytes, contar caracteres irá enganá-lo, esta ferramenta mostra o tamanho real dos bytes.
Quando o tamanho do byte é importante
Os campos do banco de dados geralmente são definidos com limites de bytes, portanto, um valor que caiba como caracteres ainda pode ser rejeitado por exceder o limite de bytes. Algumas APIs e protocolos medem cargas em bytes. Mensagens SMS, orçamentos de tamanho de arquivo e determinados campos de formulário se preocupam com bytes. Os desenvolvedores que verificam se um valor cabe em uma coluna ou se uma carga útil está abaixo de um limite de tamanho precisam da contagem de bytes, não da contagem de caracteres.
Lendo o resultado
A ferramenta mostra três números atualizados conforme você digita: o total de bytes em UTF-8, o equivalente em quilobytes para texto maior e a contagem de caracteres simples para comparação. Quando as contagens de bytes e caracteres divergem, essa lacuna é o conteúdo não ASCII do seu texto, os acentos, símbolos e emojis que ocupam cada um mais de um byte. Tudo é calculado no seu navegador, para que até mesmo textos confidenciais permaneçam no seu dispositivo.
Caracteres versus bytes
Um caractere e um byte nem sempre são a mesma coisa. Em ASCII simples, um caractere equivale a um byte, mas em UTF-8, a codificação padrão da web, letras acentuadas, emoji e caracteres não latinos ocupam dois, três ou quatro bytes cada. Esta ferramenta mede: a contagem de caracteres e o tamanho real em bytes em UTF-8. A diferença é importante sempre que um limite é definido em bytes em vez de caracteres, o que é mais comum do que a maioria das pessoas espera.
Por que o tamanho do byte é importante
Os campos do banco de dados geralmente são dimensionados em bytes, portanto, um limite VARCHAR pode ser atingido por menos caracteres do que o esperado se o texto contiver caracteres multibyte. Cargas de rede, limites de tamanho de mensagens e cotas de armazenamento são medidos em bytes. Algumas APIs limitam os corpos da solicitação por tamanho de byte. Se você já teve um texto rejeitado por ser "muito longo" quando a contagem de caracteres parecia boa, provavelmente os caracteres multibyte e um limite baseado em bytes foram a causa. Medir o tamanho do byte antecipadamente evita essa surpresa.
Caracteres UTF-8 e multibyte
UTF-8 codifica as letras e dígitos latinos básicos em um único byte cada, de modo que o texto simples em inglês tenha contagens iguais de caracteres e bytes. Mas “é” tem dois bytes, muitos caracteres asiáticos têm três bytes e emoji normalmente têm quatro. Portanto, uma string de 100 caracteres pode ter de 100 a 400 bytes, dependendo de seu conteúdo. Esta ferramenta mostra o tamanho exato de bytes, o tamanho de kilobytes e a contagem de caracteres juntos, para que você possa ver com precisão como seu texto é medido em relação a qualquer limite, seja ele definido em caracteres ou bytes.