Utilia

Remover caracteres invisíveis

Encontra e remove caracteres invisíveis online. Deteta espaços de largura zero, espaços inseparáveis, hífenes condicionais e controlos bidi (Trojan Source).

Caracteres a remover

Como remover caracteres invisíveis

  1. Cola o teu texto na caixa de entrada. É analisado assim que o colas.
  2. Lê o resultado: uma tabela lista todos os caracteres ocultos encontrados, com o ponto de código, a sigla, o nome Unicode, o tipo e a quantidade. A Entrada destacada mostra onde está cada um, como uma pequena etiqueta colorida, por exemplo ZWSP ou NBSP.
  3. Em Caracteres a remover, deixa marcados os tipos que queres apagar. Selecionar todos / nenhum liga ou desliga todos de uma vez.
  4. Deixa marcada a opção Substituir os espaços inseparáveis e especiais por um espaço normal para que «10 000» mantenha o espaço em vez de passar a «10000».
  5. Copia o texto limpo da caixa de resultado. Remover caracteres invisíveis atualiza o resultado.

O que esta ferramenta deteta

Tipo Caracteres De onde vêm
Caracteres de largura zero ZWSP U+200B, ZWNJ U+200C, ZWJ U+200D, WJ U+2060, BOM U+FEFF Páginas web, processadores de texto, texto copiado de PDF ou de aplicações de chat, ficheiros guardados com marca de ordem de bytes
Espaços inseparáveis e especiais NBSP U+00A0, NBSP estreito U+202F, espaços fino, eme, ene, de algarismo e ideográfico, separadores de linha e de parágrafo   em HTML, tipografia francesa, Word, Option+Espaço no macOS
Hífenes condicionais SHY U+00AD Sugestões de hifenização de processadores de texto e sites
Controlos bidirecionais LRM, RLM, ALM, LRE–RLO (U+202A–U+202E), LRI–PDI (U+2066–U+2069) Texto que mistura árabe, hebraico e latim, e código malicioso
Caracteres de controlo NUL, ESC, mudança de página, DEL, controlos C1 Saída de terminal, ficheiros antigos, codificações estragadas
Outros caracteres de formatação Caracteres de etiqueta, operadores matemáticos invisíveis, preenchimentos Hangul, braille em branco, qualquer outro carácter Unicode «Cf» Marcas de água ocultas, nomes de utilizador «em branco», origens obscuras
Seletores de variação VS1–VS256 Estilos de emoji, variantes CJK e um truque de esteganografia que esconde dados depois de um emoji

As tabulações, mudanças de linha e retornos de carro são caracteres normais e nunca são tocados. Os seletores de variação não vêm selecionados por omissão, porque normalmente são legítimos.

Porque é que os caracteres invisíveis causam problemas

Parecem não ser nada, mas os computadores veem-nos. Um espaço de largura zero dentro de uma palavra estraga a pesquisa e o corretor ortográfico, uma marca de ordem de bytes no início de um ficheiro CSV corrompe o nome da primeira coluna, um espaço inseparável faz dois valores parecerem diferentes numa pesquisa de folha de cálculo ou num campo de palavra-passe, e um hífen condicional pode partir um URL. Código com um U+FEFF ou um U+00A0 perdido pode recusar-se a compilar com um erro incompreensível.

Os caracteres invisíveis também podem ser deliberados: alguns são usados para marcar texto copiado, de modo a que uma fuga de informação possa ser rastreada até à origem.

Trojan Source e controlos bidi

Os controlos bidirecionais dizem ao motor de apresentação para dispor parte de uma linha da direita para a esquerda. Dentro de código-fonte, podem fazer o código parecer diferente daquilo que o compilador realmente executa, um ataque publicado em 2021 com o nome «Trojan Source» (CVE-2021-42574). Quando a ferramenta encontra um destes caracteres, mostra um aviso. Um texto legítimo em árabe ou hebraico pode usar as marcas LRM e RLM, mas controlos de incorporação, substituição e isolamento num ficheiro de código ou de configuração são um sinal de alarme.

Mantém o que precisas

  • Manter os caracteres de junção e os seletores dentro dos emojis protege os caracteres de junção de largura zero e os seletores de variação que formam emojis como 👨‍👩‍👧 ou ❤️. Desmarca a opção para os removeres também; o emoji da família passa então a três pessoas separadas.
  • O persa, o hindi e outras escritas usam o ZWNJ e o ZWJ para controlar a forma como as letras se ligam. Para esses textos, desmarca Caracteres de largura zero (ZWSP, ZWNJ, ZWJ, WJ, BOM).
  • A tipografia francesa usa espaços inseparáveis estreitos antes de ; : ! ? e dentro das aspas « ». Desmarca o tipo dos espaços para os manteres. Em textos portugueses, o espaço inseparável aparece sobretudo como separador de milhares («10 000»).

Perguntas frequentes

Como sei se o meu texto tem espaços de largura zero?

Cola-o aqui. Se a tabela ficar vazia e o estado indicar «Nenhum carácter invisível encontrado.», não há nenhum.

Remover os espaços inseparáveis vai colar as minhas palavras?

Não com a definição por omissão: os espaços inseparáveis e especiais são substituídos por um espaço normal. Só desmarca a opção de substituição se quiseres que sejam apagados.

A ferramenta remove os espaços normais, as tabulações ou as quebras de linha?

Não. Só os tipos de caracteres listados acima são afetados.

É seguro colar texto confidencial?

Sim. A análise e a limpeza correm no teu navegador; nada é enviado nem guardado.

Porque é que o meu ficheiro limpo continua a mostrar um carácter estranho no início?

Se o ficheiro foi guardado com uma codificação diferente de UTF-8, o problema pode ser a codificação e não um carácter invisível. Volta a guardar o ficheiro em UTF-8 e analisa-o de novo.