Tire o lixo invisível do seu texto.
Cole qualquer coisa. A gente encontra espaços de largura zero, caracteres de tag contrabandeados, letras parecidas e o tipo de marca d'água de IA que se esconde nos caracteres, e faz isso sem destruir os seus emojis nem o seu texto em outros idiomas.
- Roda no seu navegador
- Sem cadastro
- Grátis, sem limites
- Código aberto
Nada é enviado. A limpeza acontece nesta página.
Seu texto é analisado no navegador. Clique em Limpar texto para ver os resultados abaixo.
O nível padrão remove apenas caracteres que você não consegue ver. O máximo também reescreve texto visível: letras parecidas, aspas, travessões e espaçamento. Por isso é uma escolha, não o padrão.
Avançado(limpezas extras, desligadas por padrão)
O padrão já remove todo caractere que é invisível e não está fazendo trabalho nenhum: caracteres de largura zero, marcas de ordem de bytes, hifens opcionais, operadores matemáticos invisíveis, substituições bidi, caracteres de tag soltos e seletores de variação soltos, não caracteres e outros controles de formatação. Tudo o que vem abaixo vai além disso: ou altera um texto que você consegue ver, ou remove caracteres que estão fazendo um trabalho. A decisão é sua.
Espaços e layout
Letras e pontuação
Controles
Agressivo
Clique em Limpar texto e mostramos exatamente o que estava escondido aí dentro: primeiro em palavras simples, com os pontos de código embaixo, se você quiser.
- Seu texto nunca sai desta páginaNão existe upload, não existe chamada a servidor, não existe medição do que você cola. Desligue o wi-fi e ela continua funcionando.
- Grátis, ilimitado, sem contaSem limite de caracteres, sem cota diária, sem muro de e-mail na frente do resultado.
- Derrotou 11 esquemas reais de ocultaçãoBinário de largura zero, contrabando com caracteres de tag, bytes em seletores de variação, espaços da técnica SNOW, binário por homóglifos e por NFC/NFD, e mais cinco.
- O mesmo mecanismo do CLIA ferramenta em Python e esta página seguem um único livro de regras, então uma checagem de pre-commit e uma colagem no navegador concordam.
Cole, limpe, copie.
É isso. Todo o resto desta página é leitura opcional.
Cole aqui
Direto de uma janela de chat, de um PDF, de uma ferramenta de tradução, de um assistente de IA ou do e-mail de um colega. Os caracteres ocultos vêm de carona, e é justamente esse o ponto.
Clique em Limpar texto
Percorremos o seu texto caractere por caractere e decidimos, para cada um que é suspeito, se ele está se escondendo ou trabalhando. As palavras visíveis nunca são tocadas.
Copie a versão limpa
Um botão. Se você quiser o comprovante, abra a tabela de ocorrências e veja cada caractere com a sua posição, o seu ponto de código e o seu nome Unicode oficial.
A mesma limpeza, sem esta aba.
O limpador acima é grátis e sem limite, e vai continuar assim. Estes três levam o mesmo motor para onde o seu texto já está: uma tecla, um clique direito ou um comando.
Ghostchars para Mac
Um app na barra de menus: selecione o texto em qualquer lugar do seu Mac, aperte o atalho e a versão limpa toma o lugar dele. Ou deixe limpar ao copiar, e o que você colar já sai limpo.
O atalho de teclado e a limpeza ao copiar são grátis 20 vezes por semana; a janela do próprio app e os relatórios dele nunca entram na conta.
Baixar para MacGhostchars para Chrome
Uma janela que limpa o que você cola em qualquer site e um menu de contexto que troca ali mesmo o texto selecionado. Ligue a limpeza ao colar nos sites em que você cola bastante e é a versão limpa que aparece, no lugar da que você copiou.
A janela e o menu de contexto são ilimitados, em todos os sites; limpar ao colar é grátis 20 vezes por semana. Ela é instalada pela Chrome Web Store, em Chrome, Edge, Brave, Arc, Opera.
Ver a extensãoGhostchars no seu terminal
Um pacote npm com o mesmo motor: limpe arquivos e documentos pela linha de comando, submeta um repositório a uma barra na CI e dê ao seu agente de programação as ferramentas via MCP. Arquivos de skill, um hook do Claude Code e um bloco de pre-commit vêm dentro dele.
Grátis e com licença MIT, Node 22 ou mais novo, e nada sai da sua máquina: não há código de rede no pacote.
Ver o CLIUma licença para tudo: $24 uma vez tira o limite semanal dos dois, em até 3 aparelhos seus, e tudo neste site continua grátis de qualquer jeito.
Seis famílias de caracteres que você não vê.
Cerca de 26 tipos distintos de caractere, agrupados nas famílias que de fato se comportam de maneira diferente.
Caracteres de largura zero
Não ocupam espaço, sobrevivem ao copiar e colar e conseguem codificar uma mensagem inteira em binário. A forma clássica de marcar um documento por destinatário.
U+200B ZWSP · U+200C ZWNJ · U+200D ZWJ · U+2060 WORD JOINER · U+FEFF BOM
Controles bidi
Reordenam a forma como o texto é exibido. Inofensivos ao lado do hebraico ou do árabe; longe deles, são um jeito de fazer um código-fonte ser lido de um jeito e compilar de outro.
U+202A-202E · U+2066-2069 · U+200E LRM · U+200F RLM · U+061C ALM
Caracteres de tag
Um alfabeto ASCII fantasma. Uma frase inteira em inglês cabe dentro do plano 14 e não desenha absolutamente nada. É o truque por trás do ASCII smuggling, o contrabando de instruções invisíveis para assistentes de IA.
U+E0001 · U+E0020-E007E · U+E007F CANCEL TAG
Seletores de variação
Servem para escolher o estilo de um emoji ou de um glifo. Soltos, cada um carrega um byte, o que torna trivial pendurar uma carga invisível e longa em qualquer caractere.
U+FE00-FE0F · U+E0100-E01EF
Espaços e separadores
Nem todo espaço vem da barra de espaço. Trocar um NBSP por um espaço comum, ou deixar um espaço a mais no fim de uma linha, codifica bits que ninguém enxerga.
U+00A0 · U+2000-200A · U+202F · U+205F · U+3000 · U+2028 · U+2029
Letras parecidas
O а cirílico não é o a latino, e nada na tela avisa isso. Nosso mapa tem 1.513 entradas geradas a partir do próprio confusables.txt do Unicode.
U+0430 а · U+043E о · U+0435 е · U+03BF ο · U+0456 і · U+FF41 a
Por que os seus emojis sobrevivem.
O mesmo caractere pode ser esconderijo ou viga de sustentação. Ferramentas que apagam só pelo ponto de código quebram coisas; as que jogam na defensiva deixam coisas passar. Nós olhamos para os vizinhos.
Mantido: é ele que segura a família
O U+200D fica entre dois emojis. Remova e o emoji de família se desmancha em três pessoas separadas. Mesmo caractere, mesmo ponto de código, trabalho completamente diferente.
Removido: está escondido entre duas letras
O mesmíssimo U+200D entre duas letras latinas não une nada. Ele está ali para sobreviver a um copiar e colar e carregar um bit da marca d'água de alguém.
🏴 continua sendo uma bandeira
Caracteres de tag soletram "gbsct" dentro da bandeira da Escócia. Caracteres de tag soltos são removidos; os que estão dentro de uma sequência de bandeira válida, não.
O persa e o híndi ficam com seus ligadores
Um não-ligador de largura zero dentro de uma palavra persa muda a forma como as letras se conectam. Apague e você escreveu a palavra errado. Nós mantemos e avisamos que ele está ali.
O hebraico fica com suas marcas de direção
Um RLM ao lado de um texto em hebraico está fazendo um trabalho real de layout. Um RLM no meio de um trecho em inglês, não. Os dois são U+200F.
O que esta ferramenta não consegue fazer.
Um monte de sites promete "remover marcas d'água de IA". Aqui está onde a limpeza de caracteres realmente para, para que você não conte com ela para algo que ela nunca foi capaz de fazer.
- Marcas d'água estatísticas continuam onde estão. Esquemas como o SynthID-Text, do Google, ficam embutidos em quais palavras o modelo escolheu, não em caractere nenhum. Nada do que removemos toca neles. Reescrever o texto, sim.
- A estilometria fica intacta. Ritmo das frases, vocabulário e estrutura são o que os classificadores de detecção de IA de fato leem. Endireitar as suas aspas não muda nada disso.
- Esconderijos no nível do arquivo estão fora do escopo aqui. Metadados de um DOCX, texto branco sobre branco num PDF, comentários em HTML: isso mora no arquivo, não no texto. Cole o texto e limpamos o texto; leve o arquivo inteiro para a página de Documentos.
- Um travessão não é prova. Podemos converter a pontuação tipográfica quando você pedir, mas quem escreve bem também usa travessão. Trate isso como formatação, não como prova.
O que a gente afirma: onze técnicas publicadas de esteganografia no nível dos caracteres, cada uma derrotada em teste, com o texto visível byte a byte idêntico depois.
Kris Vinters cria e mantém o Ghostchars. A página Sobre explica os critérios por trás desses limites.
O que é, na prática, uma "marca d'água de IA", e o que dá para remover?
Na maioria, gente que acabou de colar alguma coisa.
Quem escreve e quem estuda
O texto passou por três aplicativos antes de chegar ao seu documento. Limpe uma vez, para que um portal de submissão ou um verificador de plágio não engasgue com caracteres que você nunca digitou.
Tradutores
Ferramentas CAT e mecanismos de tradução automática deixam para trás NBSPs, hifens opcionais e marcas bidi perdidas. Limpe a camada invisível sem tocar nos ligadores de que o seu idioma de destino depende.
Editoras e times de CMS
Os originais chegam do Word, do Docs e do e-mail. Normalize antes que entrem no banco de dados e guarde um relatório do que mudou.
Desenvolvedores
Rode --check em um hook de pre-commit e faça o commit falhar quando um caractere invisível ou uma substituição bidi cair no código, na configuração ou num arquivo de tradução.
Times de segurança (inclusive de IA)
Inspecione cargas suspeitas de injeção de prompt: veja a frase escrita em caracteres de tag, os pontos de código e os deslocamentos exatos antes de decidir o que fazer com aquela entrada.
Quem recebeu um arquivo estranho
Se um documento parece normal mas se comporta de um jeito esquisito, com busca que falha, ordenação que quebra ou um nome que não bate, cole aqui primeiro. Normalmente é um caractere que você não consegue ver.
Veja funcionando
A mesma limpeza em três lugares: este site, a extensão de navegador que limpa o que você cola dentro do próprio campo em que já está digitando, e um atalho no Mac que limpa a área de transferência a partir de qualquer aplicativo. Os três rodam na sua própria máquina.
Assistir
Ghostchars na web, no Chrome e no Mac
30 segundos · Legendas incluídas
O mesmo mecanismo, no seu terminal.
O strip_invisible.py é um único arquivo Python sem dependências. Sem instalação, sem pacote em que confiar: baixe, leia e execute.
# Ver o que está escondido, sem mudar nada
python3 strip_invisible.py --show file.md
# Limpar no lugar e, já que está ali, normalizar espaços e pontuação
python3 strip_invisible.py -i -s --punct draft.md
# Falhar o build se caracteres invisíveis entrarem no repositório
python3 strip_invisible.py --check src/**/*.ts
# Documentos também: trechos ocultos, alterações controladas, metadados, rsids
python3 clean_file.py --show essay.docxCódigo de saída 1 quando encontra qualquer coisa, então ele cai direto num hook de pre-commit ou num passo de CI. Cada chave do painel Avançado, acima, corresponde a uma flag.
Coisas razoáveis de perguntar.
Meu texto é enviado para algum lugar?
Não. Tudo roda em JavaScript nesta página. Não há nenhuma requisição a servidor quando você clica em Limpar texto, e nada do que você cola é registrado ou armazenado. Se quiser conferir, abra a aba de rede do seu navegador ou simplesmente desconecte da internet e use a página offline.
Isso vai quebrar os meus emojis?
Não com as configurações padrão. Ligadores de largura zero entre emojis, seletores de variação que escolhem a apresentação de emoji e caracteres de tag dentro de sequências de bandeira são todos reconhecidos como essenciais e mantidos, além de relatados, para que você possa vê-los. O único jeito de removê-los é ligar de propósito a opção "Remover ligadores mesmo quando importam", em Avançado.
Funciona com árabe, hebraico, híndi ou persa?
Sim, e essa é a principal razão de esta ferramenta existir. Não-ligadores de largura zero dentro de palavras persas, ligadores em escritas índicas e marcas direcionais ao lado de texto da direita para a esquerda mudam a forma como o texto se lê, então são mantidos por padrão. Os mesmos caracteres soltos no meio de um trecho em inglês são removidos.
Ela consegue remover uma marca d'água de IA?
Ela remove marcas d'água no nível dos caracteres: as que escondem dados em pontos de código invisíveis, em padrões de espaços ou em letras parecidas. Ela não remove marcas d'água estatísticas como a SynthID-Text, que vivem na escolha das palavras, e não muda a nota que um classificador de detecção de IA dá ao seu texto. Qualquer ferramenta que afirme o contrário está prometendo demais.
Por que um caractere aparece na lista mas não foi removido?
Por dois motivos. Ou ele é essencial, e removê-lo mudaria a forma como o seu texto é exibido, ou ele depende de uma opção que vem desligada porque alteraria texto visível, como letras parecidas ou aspas tipográficas. Nos dois casos, a tabela de ocorrências indica exatamente a opção que o removeria, então nada é ignorado em silêncio.
O que é um ataque de ASCII smuggling?
O Unicode tem um bloco de caracteres de "tag" (U+E0000-E007F) que espelham o ASCII mas não desenham absolutamente nada. Uma instrução inteira pode ser escrita neles, colada num documento e lida por um modelo de linguagem, sendo completamente invisível para a pessoa que está revisando. Removemos caracteres de tag soltos por padrão e mostramos o que eles soletravam.
Qual é a diferença entre NFC e NFKC?
O NFC escolhe uma grafia consistente para os caracteres acentuados: "é" como um único ponto de código, em vez de "e" mais um acento combinante. Escolher entre as duas formas ao acaso já é, por si só, um jeito de codificar bits. O NFKC vai além e também converte letras de largura completa, ligaduras e sobrescritos em equivalentes simples, o que é mais agressivo do que a maioria dos textos precisa.
Existe limite de quanto texto eu posso limpar?
Sem cota e sem conta. O limite prático é o seu navegador: algumas centenas de milhares de caracteres passam bem, e acima disso a versão de terminal se encaixa melhor: ela lê os arquivos em fluxo e dá conta de diretórios inteiros.
A limpeza muda a aparência do meu texto?
Com os padrões, não: todo caractere removido é um que não desenha nada. É a esse teste que a ferramenta é submetida: rode contra um esquema de esteganografia e o texto visível tem de sair byte a byte idêntico. As opções em Avançado quebram essa regra de propósito, e é por isso que cada uma diz o que altera.
Em que isso é diferente de um localizar e substituir?
Um localizar e substituir apaga toda ocorrência de um ponto de código. É assim que as ferramentas acabam despedaçando emojis de família e a grafia do persa. Esta aqui decide caso a caso, com base nos caracteres dos dois lados, e mostra o raciocínio de cada decisão com número de linha e de coluna.