Limpador de espaços e caracteres invisíveis
O texto que sai de um PDF, de um documento do Word ou de uma página web quase sempre carrega espaçamento que você não vê. Esta ferramenta remove os espaços a mais, as tabulações soltas e os caracteres Unicode invisíveis, e lista o que encontrou para você saber o que havia ali de verdade.
Uma linha conta como em branco quando não tem nada além de espaços.
As tabulações coladas entre colunas costumam ser o que quebra um CSV.
Aparar as linhas e juntar os espaços destroem a indentação. Desligue os dois para código, Markdown e tabelas de largura fixa.
O espaço em branco que você não vê
Um espaço nem sempre é um espaço. O Unicode define mais de uma dúzia de caracteres que aparecem em branco, e o texto copiado de um PDF, de um documento do Word ou de uma página web com estilos está cheio deles. Todos sobrevivem a um localizar e substituir do espaço normal, porque nenhum deles é um espaço normal.
- U+00A0, o espaço não separável. Vem de
no HTML, do autoformato do Word e, no Mac, de Option mais a barra de espaço. É o culpado mais comum de todos. - U+202F, o espaço não separável estreito. A tipografia francesa coloca um antes de dois-pontos, ponto e vírgula, ponto de interrogação e ponto de exclamação.
- De U+2000 a U+200A. Espaço en, espaço em, espaço fino, espaço capilar, espaço de algarismo: larguras tipográficas que acabam no texto exportado de um programa de diagramação.
- U+3000, o espaço ideográfico. É o que a barra de espaço produz em um método de entrada japonês ou chinês. Ele tem largura inteira, então parece dois espaços.
- U+200B, o espaço de largura zero. Não ocupa nada. Alguns gerenciadores de conteúdo o inserem dentro de palavras longas para que elas possam quebrar de linha.
- U+FEFF, a marca de ordem de bytes. O lugar dela é o começo de um arquivo, não o meio de uma string, e ela aparece nos dois lugares.
O estrago tem sempre o mesmo formato: duas strings que parecem idênticas não coincidem. Uma busca em uma planilha devolve erro em um nome que você vê que está certo. Uma chave JSON não resolve. Uma senha colada é recusada. Uma importação de CSV deixa um espaço inicial em todos os campos de uma coluna.
Os finais de linha, e por que nenhuma ferramenta com uma caixa de texto consegue corrigi-los
O Windows termina uma linha com dois caracteres: um retorno de carro e depois um avanço de linha. Unix e macOS usam só o avanço de linha. O Mac OS clássico, anterior ao OS X, usava só o retorno de carro. Misturá-los é o que faz um arquivo abrir como uma única linha enorme em um editor e mostrar um ^M no fim de cada linha em outro, e o que faz um diff dizer que todas as linhas mudaram quando só uma mudou.
A parte que vale saber: esta ferramenta não ajuda nisso, e nenhuma outra página com uma caixa de texto ajuda. O HTML normaliza o conteúdo de um textarea para avanços de linha simples, então, quando um script lê o que você colou, os retornos de carro já se foram. Não sobra nada para contar nem nada para relatar. Os finais de linha são um problema do arquivo, então corrija no nível do arquivo: na configuração de fim de linha do seu editor, com dos2unix ou com a opção de conversão do próprio git.
Por que juntar os espaços às vezes é um erro
Duas das opções daqui são destrutivas de um jeito que fica óbvio depois:
- Python, YAML e Makefiles. A indentação é sintaxe. Aparar o começo de cada linha transforma um arquivo que funciona em um erro de sintaxe, e um Makefile em específico exige uma tabulação de verdade.
- Markdown. Dois espaços no fim de uma linha significam uma quebra de linha forçada. Quatro espaços no começo significam um bloco de código. Os dois somem quando você apara e junta os espaços.
- Dados de largura fixa e tabelas ASCII. As colunas são definidas pela posição de cada caractere. Juntar as sequências de espaços funde todas as colunas em uma só.
A regra prática: use isto em texto corrido. Para código, desligue o aparo das linhas e a junção de espaços, deixe ligada a remoção de caracteres invisíveis e deixe o resto com o seu formatador.
Remover caracteres invisíveis pode quebrar emojis
Um dos caracteres do conjunto invisível é o U+200D, o unificador de largura zero, e ele faz um trabalho de verdade. Um único emoji de programador é uma pessoa, um unificador e um notebook. Tire o unificador e você fica com dois emojis separados em vez de um. Os emojis de família se desmontam do mesmo jeito. Se o seu texto tem emojis e eles importam, desligue essa opção e limpe só os espaços.
O que esta ferramenta não vai resolver
Ela não lê intenção. Um espaço não separável entre um número e sua unidade, ou dentro de um nome, é tipografia deliberada: está ali para impedir que uma quebra de linha parta "10 km" ao meio. Esta ferramenta o substitui por um espaço comum junto com todos os acidentais. Se você escreve com cuidado, compare o antes e o depois em vez de confiar na saída.
Ela também não mexe no outro problema de diferença invisível: os homóglifos. Um а cirílico e um a latino são caracteres diferentes que aparecem idênticos na tela, e nenhuma limpeza de espaços vai fazer com que coincidam. Mesmo sintoma, causa diferente, e vale descartar isso quando duas strings continuam sem coincidir depois de uma limpeza.
As aspas curvas, os travessões e os caracteres de reticências ficam exatamente como estão, porque em geral estão corretos. E tudo aqui roda de forma síncrona na página, então colar vários megabytes congela a aba por um instante enquanto o trabalho acontece. Para arquivos desse tamanho, um editor de texto com busca por expressões regulares é a ferramenta certa.
Perguntas frequentes
Como removo espaços duplos de um texto?
Deixe "Juntar espaços repetidos" marcado e cole o texto. Cada sequência de dois ou mais espaços vira um só. Se você também quer sumir com os espaços do começo e do fim de cada linha, deixe "Aparar cada linha" ligado também.
O que é um espaço não separável e por que ele quebra as coisas?
É o U+00A0, um espaço que impede a linha de quebrar naquele ponto. Ele parece exatamente um espaço normal, mas é um caractere diferente, então buscas exatas, validação de formulário e comparações de string tratam os dois como diferentes. É por isso que uma planilha pode não achar um nome que você vê que está certo.
Isto remove as quebras de linha por completo?
Sozinho, não. Coloque as linhas em branco em "Remover todas" e toda linha vazia some, mas as quebras de linha de verdade entre os blocos de texto ficam. Para juntar tudo em um parágrafo só seria preciso remover também as quebras de linha, algo que esta ferramenta deixa de propósito sem mexer para a sua estrutura sobreviver.
É seguro rodar isto em código-fonte?
Só com o aparo das linhas e a junção de espaços desligados, já que a indentação é sintaxe em Python, YAML e Makefiles. Remover caracteres invisíveis é seguro e realmente útil em código, porque um espaço de largura zero colado em um arquivo-fonte produz um erro impossível de enxergar.
Meu texto é enviado para algum lugar?
Não. A limpeza acontece nesta aba com JavaScript comum. Nada é enviado para um servidor e nada é armazenado, então fechar a página descarta o que você colou.
Última atualização 19 de setembro de 2026