Caracteres ocultos no texto: onde se escondem e como removê-los
Caracteres ocultos são pontos de código Unicode invisíveis, como espaços de largura zero, espaços sem quebra e marcas de direção. Eles parecem um espaço comum ou não aparecem de jeito nenhum, então o texto parece normal, mas a busca, o código e a validação de formulários o tratam como um texto diferente. Você os encontra inspecionando os pontos de código e os remove apagando ou substituindo esses caracteres específicos.
Remover caracteres ocultosLixo invisível no meu textoUse de graçaDe onde eles vêm
A maioria dos caracteres ocultos chega por cópia, não por digitação:
- Páginas da web. Os sites usam espaços sem quebra (U+00A0) para impedir que duas palavras se separem no fim da linha, e espaços de largura zero (U+200B) para marcar onde uma palavra longa pode quebrar. Ao copiar um trecho, você copia esses caracteres também.
- Editores de texto. Hífens opcionais (U+00AD) são inseridos para a separação silábica. Eles são invisíveis, a menos que a linha quebre exatamente ali. Alguns editores também inserem espaços sem quebra automaticamente em certos lugares.
- Aplicativos de mensagem e e-mail. Mensagens copiadas de chats ou de clientes de e-mail podem trazer junções de largura zero e marcas de direção, especialmente quando o texto mistura idiomas.
- Texto com direção mista. Textos em árabe, hebraico e mistos usam marcas de direção, como a marca da esquerda para a direita (U+200E), a marca da direita para a esquerda (U+200F) e os caracteres de incorporação e substituição (U+202A a U+202E). Eles controlam como a linha é exibida, não o que ela diz.
- Marcas de ordem de bytes. Uma marca de ordem de bytes (BOM, U+FEFF) no início de um arquivo é uma assinatura que alguns editores gravam. Ela é invisível, mas vira um primeiro caractere de verdade quando o arquivo é lido como texto puro.
- Janelas de chat com IA. Textos copiados de algumas interfaces de chat com IA também podem conter esses caracteres. A causa provável é a forma como o texto foi renderizado e copiado, então não os interprete como sinal de intenção.
Por que causam problemas
Cada caractere oculto é um ponto de código real, então ele altera o texto mesmo quando a página parece idêntica:
- A busca falha. Um espaço de largura zero dentro de uma palavra quebra a correspondência, então a pesquisa pela palavra não encontra nada.
- O código quebra. Um espaço sem quebra em um arquivo de código é um erro de sintaxe em muitas linguagens, e o erro costuma apontar para uma linha que parece perfeita. O guia sobre aspas curvas trata do outro problema comum de colagem em código.
- A validação de formulários rejeita a entrada. Um endereço de e-mail com um espaço de largura zero depois do @ parece válido, mas não passa na verificação.
- As contagens divergem. As contagens de caracteres incluem ou excluem esses caracteres conforme a ferramenta, então o mesmo texto pode ter dois totais diferentes. Conte o texto antes e depois da limpeza com o contador de palavras para ver a diferença.
Veja um pequeno exemplo. A palavra "fatura" tem seis letras. Com um espaço de largura zero dentro dela, a mesma palavra passa a ter sete pontos de código, e na tela ela continua exatamente igual. Uma busca por "fatura" não encontrará a segunda versão.
Como vê-los
Olhar para o texto não ajuda, então use uma destas opções:
- Cole o texto em uma ferramenta que lista os pontos de código, como remover caracteres ocultos, que informa o que encontrou antes de alterar qualquer coisa.
- Em um editor de código, ative a opção que mostra espaços em branco ou caracteres especiais. Os espaços sem quebra aparecerão com uma marca diferente dos espaços comuns.
- Em uma linguagem de programação, imprima os pontos de código de uma string suspeita. Em Python, por exemplo,
[hex(ord(c)) for c in text]lista cada um, então um espaço sem quebra aparece como 0xa0 e um espaço de largura zero como 0x200b.
Como removê-los
A remoção deve ser específica. Apagar todos os caracteres não ASCII também destruiria acentos, aspas e letras de outros idiomas. Em vez disso:
- Substitua os espaços sem quebra por espaços normais, já que quase sempre eles foram pensados como espaços.
- Apague os espaços de largura zero, os hífens opcionais, as marcas de ordem de bytes e as marcas de direção perdidas.
- Mantenha as letras acentuadas, as aspas curvas e a pontuação real.
Corrigir texto colado foi feito para textos que vieram de outro lugar, então use-o quando a cópia também tiver quebras de linha quebradas ou espaçamento estranho.
Como fazer com o fixmint
- Cole o texto em Seu texto.
- Leia a lista do que foi encontrado. Cada caractere é identificado, como ZWSP para um espaço de largura zero, e marcado com o que vai acontecer com ele.
- Deixe marcada a opção Manter junções dentro de emojis, para que as sequências de emojis continuem exibindo um único símbolo.
- Marque Também converter aspas curvas, travessões e … para ASCII simples apenas para código ou dados e, em seguida, use Copiar ou Baixar .txt.
Casos especiais
- As sequências de emojis usam junções de largura zero de propósito. Removê-las separa um emoji em vários símbolos.
- O espaço sem quebra é correto em algumas convenções tipográficas, como entre um número e sua unidade, e em certas pontuações do francês. Substitua-o apenas quando você tiver certeza de que é um espaço perdido.
- Depois de limpar o texto, compare-o com o original para ver exatamente o que mudou.
Respostas rápidas
Caracteres ocultos são sinal de que uma IA escreveu o texto?
Não. Eles vêm de páginas da web, editores de texto, aplicativos de mensagem e da cópia e colagem em geral. A presença deles não mostra quem ou o que escreveu o texto.
Remover todos os caracteres não ASCII resolve o problema?
Não. Isso também removeria acentos, aspas e letras de outros idiomas. Remova os pontos de código invisíveis específicos.
Como saber se uma string tem caracteres ocultos?
Compare o tamanho dela com o número de caracteres que você consegue ver ou cole-a em uma ferramenta que lista os pontos de código. Se as contagens forem diferentes, há algo invisível dentro dela.
Traduzido do Original em inglês com auxílio de IA.
Comentários
Ainda não há comentários. Seja o primeiro.


