Caracteres invisíveis em texto copiado

Publicado 4 min de leitura / 805 palavras

Já lhe aconteceu? O texto parece impecável no ecrã e, mesmo assim, algo não bate certo. A pesquisa não encontra uma palavra que está mesmo ali à frente. Uma ligação leva a uma página de erro. Um excerto de código recusa-se a correr. Muitas vezes a culpa é de um carácter que não se vê.

Que caracteres são estes

Um texto é uma fila de pontos de código, e nem todos desenham alguma coisa. Os suspeitos do costume:

  • Caracteres de largura zero (U+200B espaço de largura zero, U+200C e U+200D ligadores, U+FEFF marca de ordem de bytes). No ecrã não ocupam lugar nenhum.
  • Marcas de direção do texto (U+202A a U+202E e parecidas). Dizem em que sentido se escreve, o que faz sentido para árabe ou hebraico e nenhum num parágrafo em português.
  • Hífen suave (U+00AD). Assinala onde a palavra pode ser cortada, e só se nota quando a linha quebra.
  • Espaços esquisitos: o espaço não separável e toda uma família de espaços estreitos, largos e finos que se parecem com um espaço normal, mas não são.
  • Pontuação tipográfica: aspas curvas, travessão longo, reticências num só carácter, marcadores e setas.

Este último grupo vê-se, mas é outro carácter, diferente do que está no teclado, e os programas muitas vezes tratam-no de maneira diferente.

De onde vêm

Quase sempre da simples cópia:

  • janelas de conversa e páginas web, cuja paginação põe hífenes suaves ou espaços de largura zero para controlar a quebra das linhas;
  • processadores de texto, que trocam as aspas e os hífenes simples por versões "inteligentes" à medida que escreve;
  • tradutores e extração de texto de PDF, que podem meter espaços estranhos ou partir palavras;
  • documentos que passaram por vários programas, cada um com os seus hábitos.

Ninguém fez nada de mal, é assim que o texto viaja. E não dizemos que este ou aquele serviço mete caracteres invisíveis de propósito nas respostas: não temos dados que o permitam afirmar.

Porque dão problemas a sério

  • A pesquisa falha. Uma palavra com um carácter escondido lá dentro passa a ser outra sequência. "Contrato" e "con[largura zero]trato" não coincidem.
  • As comparações enganam. Duas linhas que à vista são iguais aparecem como diferentes.
  • Código e endereços deixam de funcionar. Basta uma aspa curva num comando ou um espaço de largura zero numa ligação para tudo parar, e a mensagem de erro quase nunca explica porquê.
  • Os verificadores de plágio perdem-se. Caracteres escondidos e espaços trocados mudam a divisão em palavras, e podem falhar coincidências ou apontá-las mal.
  • A paginação estraga-se. Folgas esquisitas, linhas que não quebram ou quebram onde não devem.

Como encontrar e limpar

O AuthorText trata disto de duas maneiras.

A primeira é a verificação. Destaca no texto os caracteres que parecem marcas de água e a tipografia, para ver onde estão em vez de adivinhar. O detetor conhece 259 destes pontos de código: caracteres de largura zero, hífen suave, operadores invisíveis, marcas de direção, seletores de variação, caracteres de etiqueta, caracteres de uso privado e mais alguns.

A segunda é a ferramenta "Limpar e normalizar". Tira estes caracteres e reduz a pontuação tipográfica a ASCII simples: aspas retas, hífen simples, três pontos. Antes de usar o resultado, compare-o com o original.

Um roteiro rápido:

  1. Cole o texto na verificação e veja os sítios destacados.
  2. Decida se quer normalizar tudo (para código, endereços e dados, em regra sim) ou só uma parte.
  3. Limpe e compare.

Um aviso: num texto literário, o travessão longo pode ser uma escolha deliberada. Normalizar convém aos textos técnicos e, na prosa, fica ao seu critério.

Outra coisa: as marcas de água estatísticas

"Marca de água" tem um segundo sentido, e convém não os misturar. Há investigadores que propuseram marcar os modelos de linguagem ao nível dos tokens: durante a geração, o modelo é empurrado de leve para certas palavras, segundo um padrão que depois pode ser testado por quem tem a chave.

Uma marca destas não é feita de caracteres. Não há nenhum ponto de código escondido no texto. Está na escolha das palavras, e por isso um limpador de caracteres não a encontra nem a tira. O AuthorText também não diz que a deteta: a nossa análise olha para o estilo, não para uma chave secreta. Caracteres invisíveis e marcas de água estatísticas são dois assuntos separados, e o primeiro não diz nada sobre o segundo.

Mais um ponto. Um texto com caracteres escondidos não é por isso de IA, e um texto sem eles não é por isso humano. Mostram como o texto foi copiado, não quem o escreveu.

O que fazer

Antes de publicar, entregar ou executar um texto copiado, dê-lhe uma olhadela. Verifique o texto para ver caracteres escondidos e tipografia, e use "Limpar e normalizar" quando precisar de ASCII simples. Se desconfia do texto por outras razões, o nosso pequeno guia dos sinais de texto de IA explica o que mais observar e porque nada disso é prova.

Verifique o seu texto Grátis, até 3 000 caracteres. Sem registo e sem guardar o texto.
Verificar um texto

A pontuação do serviço é uma pista, não prova de autoria.