tools.poderoso.io
← poderoso.io

Ferramentas de texto online

·transforma texto e mostra estatísticas ao vivo
104
caracteres
87
sem espaços
17
palavras
3
linhas
2
parágrafos
106 B
tamanho
1 min
leitura
// caixa
// limpeza
// linhas

As ferramentas de texto reúnem as transformações que aparecem todo dia: mudar caixa, remover acentuação, gerar slug, limpar espaço duplicado, contar caracteres e palavras e ver o tamanho em bytes.

Contagem de caractere e de byte

São números diferentes e a diferença importa. Em UTF-8, uma letra sem acento ocupa um byte, uma letra acentuada ocupa dois, e um emoji pode ocupar quatro. Se você está preenchendo um campo com limite em bytes, como coluna varchar de banco ou legenda de rede social, é o número de bytes que decide se cabe.

Tem ainda uma terceira contagem: a de unidades de código. JavaScript mede string em UTF-16, então um emoji conta como dois no length. É por isso que cortar string com slice às vezes parte um emoji ao meio e produz caractere quebrado.

Slug e normalização

A geração de slug remove acento, troca espaço por hífen e derruba o que não for seguro em URL. O passo de remover acento usa a normalização Unicode na forma NFD, que separa a letra do sinal diacrítico, e depois descarta os sinais. É o que String.normalize faz em JavaScript.

Isso explica um bug clássico: dois textos que parecem idênticos na tela podem ter bytes diferentes, porque um usa é como caractere único e o outro usa e mais acento combinante. Comparação de string falha, busca não acha, e a normalização é o que resolve.

Vale rodar o slug sobre o título real antes de publicar, para conferir o resultado em vez de descobrir depois que a URL ficou estranha.

Limpeza de texto colado

Texto vindo de PDF, Word ou navegador traz caracteres invisíveis que estragam comparação e busca: espaço não separável, marca de ordenação de bytes no começo do arquivo, hífen de largura zero. A limpeza remove esses casos, que é justamente o que faz um diff parar de acusar diferença em linhas visualmente iguais.

Nada do que você cola aqui sai do seu navegador. O processamento é todo local, em JavaScript, sem envio para servidor, sem log e sem armazenamento.

Perguntas frequentes

Qual a diferença entre contagem de caracteres e de bytes?

Caractere é o que você vê, byte é o que ocupa em memória ou banco. Em UTF-8, letra sem acento usa um byte, letra acentuada usa dois e emoji pode usar quatro. Campos com limite costumam contar bytes.

A remoção de acento preserva o significado?

Preserva a leitura, não a grafia correta. Ela existe para gerar slug, chave de busca e identificador, não para reescrever texto que será publicado.

O texto colado fica salvo?

Não. Tudo acontece no navegador, sem envio e sem armazenamento. Ao fechar a aba, o conteúdo desaparece.

Por que dois textos iguais na tela não são iguais no código?

Porque um pode usar a letra acentuada como caractere único e o outro como letra mais acento combinante. São bytes diferentes com a mesma aparência. Normalizar para NFC antes de comparar resolve.

Referências