Detector de Caracteres Invisíveis
Cole qualquer texto e o detector reporta cada caractere invisível que ele contém: espaços de largura zero, marcas direcionais, BOMs, hífens suaves, espaços não separáveis e o cluster de pontos de código de controle Unicode que parecem ar vazio, mas quebram busca, diff e copiar-colar. Cada ocorrência vem com seu ponto de código (U+200B), seu nome Unicode oficial e sua posição na string, para que você possa localizar onde um bug misterioso está escondido antes de removê-lo.
Como detectar caracteres invisíveis
-
1
Cole o texto
Insira a string suspeita, um trecho de código, uma mensagem copiada, um valor de configuração.
-
2
Execute a varredura
A ferramenta percorre cada ponto de código e sinaliza qualquer um que corresponda à lista de caracteres invisíveis/formato.
-
3
Revise o relatório
Cada ocorrência mostra sua posição (indexada em 1), seu ponto de código na forma `U+HHHH` e seu nome Unicode (Espaço de Largura Zero, BOM, etc.).
-
4
Limpe o texto
Use a ação de substituição para remover ou visualizar os caracteres ocultos, e então cole a versão sanitizada de volta.
Caracteres invisíveis e de onde eles vêm
Esses caracteres existem por razões legítimas (layout de texto, direção de script, caracteres combinados). Eles se tornam bugs quando vazam do contexto para o qual foram projetados e entram em código, configuração, consultas de busca ou nomes de usuário.
Caracteres que o detector procura
| Ponto de Código | Nome | Onde geralmente se infiltra |
|---|---|---|
U+200B |
Espaço de Largura Zero | Editores de texto enriquecido, processadores de texto |
U+200C |
Não-Conector de Largura Zero | Tipografia persa, hindi |
U+200D |
Conector de Largura Zero | Sequências de emoji, escritas índicas |
U+200E |
Marca da Esquerda para a Direita | Texto contendo scripts LTR e RTL |
U+200F |
Marca da Direita para a Esquerda | O mesmo |
U+202A..E |
Incorporação / substituição | O mesmo; às vezes usado maliciosamente (Trojan Source) |
U+2028 |
Separador de Linha | Copiado do Word, quebra codificadores JSON |
U+2029 |
Separador de Parágrafo | O mesmo |
U+FEFF |
Marca de Ordem de Bytes | Arquivos salvos como UTF-8-com-BOM no Notepad |
U+00A0 |
Espaço Não Quebrável | Espaço tipográfico do Word |
U+00AD |
Hífen Suave | Dicas de hifenização em texto rico |
Sintomas comuns de um bug de caractere oculto
- Uma comparação de string que “deveria” ser igual não é. Copie os valores para esta ferramenta e verifique as contagens de bytes.
- Uma regex que parece corresponder a olho, mas falha no código. Muitas vezes um
U+00A0disfarçado como um espaço. - Um parser JSON falha em um payload colado. Geralmente um BOM no início, ou
U+2028em um literal de string que o JavaScript rejeita dentro do JSON. - O título SEO tem o comprimento errado. Um espaço de largura zero ultrapassa um limite sem nenhuma mudança visível.
A perspectiva do Trojan Source
Caracteres de sobreposição bidirecional (U+202E, U+2066..U+2069) podem fazer o código-fonte ser renderizado em uma ordem enquanto é compilado em outra, a classe de ataques “Trojan Source”. Se você revisar o código de colaboradores não confiáveis, execute suas diferenças através deste detector antes de mesclar.
Perguntas frequentes
O Notepad e algumas ferramentas mais antigas do Windows usam “UTF-8 com BOM” por padrão. O BOM (U+FEFF) é aceitável para aplicativos do Windows, mas quebra muitos pipelines de shell, arquivos PHP (o BOM é ecoado como saída antes da tag <?php) e parsers JSON.
Ele parece um espaço regular na tela, mas se comporta de maneira diferente: não permite uma quebra de linha e não é correspondido pela maioria das variantes de regex \s em todas as linguagens. Muitas vezes acaba dentro de caminhos de arquivos, endereços de e-mail e nomes de usuário copiados de fontes de texto rico.
Nem sempre. Em textos árabes, persas ou devanagari, o conector e o não-conector de largura zero são semanticamente necessários. Em código, configuração e na maioria dos textos em inglês, remova livremente. Em conteúdo de linguagem natural, use o detector para inspecionar antes de remover.
Não, a análise é executada para a solicitação atual e nada que você cole é armazenado ou registrado após a resposta ser gerada.
Ferramentas relacionadas
Gerador de nomes de cidades
Gere nomes fictícios de cidades, vilas, aldeias e capitais para worldbuilding, mapas, jogos, histórias e dados fictícios, com notas curtas para cada resultado.
Gerador de Texto Negrito Itálico
Transforme texto comum em caracteres Unicode negrito itálico. Pronto para colar em bios do Instagram, Twitter/X, LinkedIn e Discord onde markdown não é suportado.
Símbolos de seta para copiar
Copie setas Unicode comuns em um clique: retas, duplas, diagonais, com gancho, circulares e triangulares para documentos, chats e designs.
Símbolo Menor ou Igual
Copie o sinal ≤ e símbolos de comparação matemática relacionados. Inclui Unicode, entidades HTML e marcação LaTeX para planilhas, artigos e páginas da web.
Gerador de Nomes de Domínio
Gere ideias de nomes de domínio a partir de uma palavra-chave: prefixos, sufixos, letras duplicadas e finais numéricos em seis TLD comuns.
Conversor de texto amigável para dislexia
Reorganize o texto colado em parágrafos curtos e linhas de cerca de 72 caracteres para facilitar a leitura. Copie o resultado para qualquer documento, e-mail ou editor.
Ferramenta disponível em outros idiomas
- 보이지 않는 문자 탐지기 [KO]
- Unsichtbarer Zeichendetektor [DE]
- Detector de Caracteres Invisibles [ES]
- Detektor Karakter Tak Terlihat [ID]
- 不可視文字検出器 [JA]
- Detektor för osynliga tecken [SV]
- เครื่องตรวจจับตัวอักษรที่มองไม่เห็น [TH]
- أداة كشف الأحرف غير المرئية [AR]
- Onzichtbare karakter detector [NL]
- Détecteur de caractères invisibles [FR]
- Bộ phát hiện ký tự vô hình [VI]
- Detektor niewidzialnych znaków [PL]
- Invisible Character Detector [EN]
- Rilevatore di Caratteri Invisibili [IT]
- Обнаружитель невидимых символов [RU]
- Görünmez Karakter Tespit Cihazı [TR]
- 不可见字符检测器 [ZH]