Pular para o conteúdo
Ghostchars

O que o Ghostchars detecta

Todas as categorias que o mecanismo consegue relatar, a opção que governa cada uma e os pontos de código que têm página própria. Cole um texto na caixa abaixo para ver quais deles ele contém.

Removido pela limpeza padrãoMantido quando é essencialPrecisa de uma opção

Nada é enviado. A limpeza acontece nesta página.

Seu texto é analisado no navegador. Clique em Limpar texto para ver os resultados abaixo.

Nível de limpeza

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.

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

Espaços inquebráveis, finos e ideográficos viram um espaço comum. Desligado porque o NBSP costuma ser proposital.
CRLF, CR, NEL e os separadores de linha e de parágrafo do Unicode viram uma quebra de linha comum.
Remove a barra que o terminal copia antes de cada linha citada. Desligado porque árvores de pastas usam a mesma barra.
Espaços estacionados no fim de uma linha podem codificar uma mensagem oculta (a técnica SNOW).
Espaços duplos entre palavras podem carregar dados binários. Desligado porque altera layouts de largura fixa.

Letras e pontuação

O а cirílico em "аpple" vira o a latino. Só age dentro de palavras que misturam escritas, então texto russo ou grego comum fica intocado. Desligado por padrão porque reescreve letras.
Travessão, aspas tipográficas, reticências e sinal de menos viram ASCII. Muita gente trata isso como "sinal de IA", mas também é só boa tipografia.
Acentos compostos ou decompostos ("é" como um caractere, ou como dois) podem codificar bits. O NFC escolhe uma das formas.
Também converte formas de largura completa, sobrescritos e ligaduras. Muda mais do que você imagina e substitui o NFC.

Controles

Já removemos as substituições bidi e as marcas em textos da esquerda para a direita. Esta opção remove também as marcas que ficam ao lado do hebraico ou do árabe, onde elas fazem um trabalho real de layout.
Controles C0 e C1 que não sejam tabulação e quebra de linha.
Quebra fontes de ícones e alguns glifos de marca, que é exatamente onde eles costumam morar.

Agressivo

Remove todos os ligadores de largura zero e seletores de variação, inclusive os que seguram 👨‍👩‍👧 e os que o persa, o híndi e as sequências de bandeira precisam. Use isto só quando você quiser letras puras e mais nada.

ZWSPTAG U+E0053

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.

As tabelas abaixo dizem sobre o que o mecanismo age. Onde você o executa é outra pergunta: se o texto está dentro de um arquivo, o relatório do documento abre um .docx, um .odt ou um .html no seu navegador e lista trechos ocultos, alterações controladas e metadados de autoria ao lado dos caracteres. Se é um texto que você vai colar em algum lugar, a extensão do Chrome limpa no próprio campo em que você já está digitando.

Nada disso tem a ver com o jeito que o texto se lê. Disso cuida o relatório de hábitos de escrita, que mede a variação no tamanho das frases, as transições prontas, as ressalvas e a densidade de travessões, e devolve os números sem nota, sem probabilidade e sem veredito sobre quem escreveu o texto.

Por categoria

As categorias são testadas nesta ordem e a primeira correspondência vence, e é por isso que um espaço de largura zero é relatado como caractere de largura zero e não como um controle de formatação genérico.

Largura zero e invisíveis

Governado por Limpeza padrão (sempre ativo)

Caracteres sem glifo e sem largura que são contrabando em qualquer lugar de um texto: espaço de largura zero, ligador de palavras, hífen opcional, marca de ordem de bytes, os quatro operadores matemáticos invisíveis, controles de formatação obsoletos, marcas de anotação interlinear, controles de notação musical e os não caracteres permanentemente reservados do Unicode.

Ponto de códigoNomeLimpeza padrão
U+200BZERO WIDTH SPACESim
U+2060WORD JOINERSim
U+00ADSOFT HYPHENSim
U+FEFFZERO WIDTH NO-BREAK SPACESim
U+2061FUNCTION APPLICATIONSim
U+2062INVISIBLE TIMESSim
U+2063INVISIBLE SEPARATORSim
U+2064INVISIBLE PLUSSim
U+034FCOMBINING GRAPHEME JOINERSim
U+180EMONGOLIAN VOWEL SEPARATORSim
U+2800BRAILLE PATTERN BLANKSim
U+3164HANGUL FILLERSim
U+FDD0-U+FDEFNONCHARACTERSSim

Substituições bidirecionais

Governado por Limpeza padrão (sempre ativo)

Os cinco controles de incorporação e de substituição. Eles reordenam um texto que não é deles, que é como um nome de arquivo pode ser exibido como algo que ele não é. Não existe contexto em que o Ghostchars mantenha um deles.

Ponto de códigoNomeLimpeza padrão
U+202ERIGHT-TO-LEFT OVERRIDESim
U+202DLEFT-TO-RIGHT OVERRIDESim
U+202ALEFT-TO-RIGHT EMBEDDINGSim
U+202BRIGHT-TO-LEFT EMBEDDINGSim
U+202CPOP DIRECTIONAL FORMATTINGSim

Marcas bidirecionais

Governado por Marcas bidi --bidi

Dicas de direção: as marcas de esquerda para a direita e de direita para a esquerda, a marca de letra árabe e os quatro isoladores. Ao lado de texto da direita para a esquerda elas resolvem uma ambiguidade real e são mantidas; num parágrafo em inglês são enchimento invisível e um portador de esteganografia já publicado, e saem.

Ponto de códigoNomeLimpeza padrão
U+200ELEFT-TO-RIGHT MARKQuando está solto
U+200FRIGHT-TO-LEFT MARKQuando está solto
U+061CARABIC LETTER MARKQuando está solto
U+2066-U+2069BIDIRECTIONAL ISOLATESQuando está solto

Ligadores, seletores e preenchedores

Governado por Agressivo -a

Caracteres invisíveis que se prendem ao caractere anterior ou ao seguinte: ligador e não-ligador de largura zero, seletores de variação, caracteres de tag e os preenchedores específicos do mongol, do khmer e do hangul. Mantidos quando os vizinhos os tornam essenciais, removidos quando estão soltos.

Ponto de códigoNomeLimpeza padrão
U+200DZERO WIDTH JOINERQuando está solto
U+200CZERO WIDTH NON-JOINERQuando está solto
U+FE00-U+FE0FVARIATION SELECTORSQuando está solto
U+E0000-U+E007FTAG CHARACTERSQuando está solto
U+180B-U+180DMONGOLIAN FREE VARIATION SELECTORSQuando está solto
U+17B4-U+17B5KHMER INHERENT VOWELSQuando está solto
U+115F-U+1160HANGUL JAMO FILLERSQuando está solto

Qualquer outro controle de formatação

Governado por Limpeza padrão (sempre ativo)

O pega-tudo. Todo caractere restante cuja categoria geral do Unicode é Cf é removido, então um controle de formatação criado numa versão futura do Unicode é pego sem mudança de código. As exceções ortográficas (os sinais numéricos árabes, a marca de abreviação siríaca, o sinal numérico kaithi) são reconhecidas antes e deixadas em paz.

Detectado por propriedade do Unicode, e não a partir de uma lista, então não há um conjunto fixo de pontos de código para enumerar.

Caracteres de uso privado

Governado por Caracteres de uso privado --pua

Pontos de código que o Unicode nunca vai atribuir, cujo significado é um acordo privado entre uma fonte e um aplicativo. As fontes de ícones moram aqui, e é por isso que removê-los é opcional: em textos de interface, eles são o conteúdo.

Ponto de códigoNomeLimpeza padrão
U+E000-U+F8FFPRIVATE USE AREANão

Espaços exóticos

Governado por Espaços -s

Espaços que não são o U+0020: o espaço inquebrável, o estreito e o médio, o espaço ideográfico, a marca de espaço ogâmica e os onze espaços tipográficos de largura fixa. Eles são substituídos por um espaço comum em vez de apagados, porque estão separando palavras.

Ponto de códigoNomeLimpeza padrão
U+00A0NO-BREAK SPACENão
U+202FNARROW NO-BREAK SPACENão
U+205FMEDIUM MATHEMATICAL SPACENão
U+3000IDEOGRAPHIC SPACENão
U+1680OGHAM SPACE MARKNão
U+2000-U+200AGENERAL PUNCTUATION SPACESNão

Separadores de linha

Governado por Quebras de linha -n

Os separadores de linha e de parágrafo do Unicode e o NEL, herdado do EBCDIC. Convertidos num avanço de linha comum em vez de apagados, porque apagá-los grudaria duas linhas.

Ponto de códigoNomeLimpeza padrão
U+2028LINE SEPARATORNão
U+2029PARAGRAPH SEPARATORNão
U+0085NEXT LINENão

Caracteres de controle

Governado por Caracteres de controle --controls

Os códigos de controle C0 e C1, exceto tabulação, avanço de linha e retorno de carro. A presença deles num texto costuma significar um acidente de decodificação ou uma sondagem deliberada.

Ponto de códigoNomeLimpeza padrão
U+0000-U+001FC0 CONTROL CHARACTERSNão
U+0080-U+009FC1 CONTROL CHARACTERSNão

Pontuação tipográfica

Governado por Pontuação --punct

Aspas tipográficas, travessões e meias-riscas, reticências, sinal de menos e as linhas primas. Não há nada escondido aqui, porque são caracteres visíveis, mas são um ponto de código diferente das formas ASCII, e a escolha entre a aspa reta e a curva é um canal já publicado de um bit por apóstrofo.

Ponto de códigoNomeLimpeza padrão
U+2013EN DASHNão
U+2014EM DASHNão
U+2019RIGHT SINGLE QUOTATION MARKNão
U+2026HORIZONTAL ELLIPSISNão

Barras de citação do terminal

Governado por Barras de citação --gutters

A barra que o terminal desenha à esquerda de uma citação e que, ao copiar, vem como texto no começo de cada linha. Uma barra só conta quando abre a linha e o mesmo caractere não aparece de novo mais adiante nela, então uma tabela desenhada com caracteres de moldura fica intacta. Ela sai junto com o espaço que vem depois. É opcional porque uma árvore de pastas impressa no terminal começa as linhas com a mesma barra.

Ponto de códigoNomeLimpeza padrão
U+2502│ BOX DRAWINGS LIGHT VERTICALNão
U+2503┃ BOX DRAWINGS HEAVY VERTICALNão
U+258C▌ LEFT HALF BLOCKNão
U+258D▍ LEFT THREE EIGHTHS BLOCKNão
U+258E▎ LEFT ONE QUARTER BLOCKNão
U+258F▏ LEFT ONE EIGHTH BLOCKNão

Letras parecidas

Governado por Letras parecidas --confusables

Letras cirílicas, gregas, armênias, cherokee, de largura completa e matemáticas que são desenhadas igualzinho às latinas. O mapeamento tem 1.513 entradas geradas a partir dos próprios dados de confusables do Unicode, e uma letra só conta dentro de uma palavra que mistura escritas: uma sequência de letras que também contém uma letra ou dígito ASCII, como "аpple". Uma palavra puramente cirílica ou grega nunca é relatada nem reescrita. Mesmo assim é opcional, porque reescreve letras que você consegue ver.

Ponto de códigoNomeLimpeza padrão
U+0430CYRILLIC SMALL LETTER ANão
U+043ECYRILLIC SMALL LETTER ONão
U+0435CYRILLIC SMALL LETTER IENão
U+0441CYRILLIC SMALL LETTER ESNão

As opções

A limpeza padrão não precisa de opção nenhuma e está sempre ligada. Todo o resto fica desligado até você ligar, e cada uma delas altera texto que você consegue ver, que é exatamente por isso que vem desligada.

OpçãoFlag do CLIO que fazPor que não é o padrão
Limpeza padrão(sempre ativo)Caracteres de largura zero, a marca de ordem de bytes, hifens opcionais, operadores matemáticos invisíveis, substituições bidi, caracteres de tag soltos, seletores de variação soltos, não caracteres, todo controle de formatação Cf restante e caracteres de ligação soltos.Sempre ligada. Nada do que ela remove é visível ou essencial.
Agressivo-aRemove os caracteres de ligação mesmo onde eles são essenciais.Quebra emojis de família, a grafia do persa e das escritas índicas, bandeiras de subdivisão e variantes de glifos CJK.
Espaços-sTroca espaços inquebráveis e exóticos por um espaço comum.Um espaço inquebrável normalmente está fazendo o seu trabalho: pontuação francesa, "10 km", layout CJK.
Quebras de linha-nConverte CRLF, CR, NEL, U+2028 e U+2029 num avanço de linha comum.Mudar as quebras de linha muda o arquivo, e alguns fluxos dependem delas.
Marcas bidi--bidiRemove marcas de direção e isoladores mesmo ao lado de texto da direita para a esquerda.Quebra o layout de textos que misturam hebraico, árabe e persa.
Caracteres de controle--controlsRemove os controles C0 e C1, mantendo a tabulação e as quebras de linha.São raros em texto comum, e a presença deles costuma apontar um problema de codificação que vale corrigir na origem.
Caracteres de uso privado--puaRemove pontos de código das áreas de uso privado.Os glifos das fontes de ícones moram lá; removê-los esvazia os rótulos da sua interface.
Pontuação--punctConverte travessões e meias-riscas, aspas tipográficas, reticências e sinal de menos para ASCII.Isso é tipografia, não ocultação. Converter deixa o texto pior, não mais humano.
Letras parecidas--confusablesMapeia 1.513 pontos de código parecidos para os seus gêmeos latinos, só dentro de palavras que misturam escritas.Reescreve letras que você consegue ver. Texto puramente cirílico, grego ou turco fica intocado, mas uma palavra que mistura escritas é alterada, por isso é você quem decide ativá-la.
Barras de citação--guttersRemove a barra de citação que o terminal copia no começo de cada linha, junto com o espaço depois dela.Uma árvore de pastas ou uma caixa desenhada em texto pode começar as linhas com a mesma barra.

Opções sobre o texto inteiro

Mais quatro opções reescrevem padrões em vez de caracteres individuais, então elas não têm categoria própria.

Normalizar (NFC)

Compõe uma letra e o seu acento num único ponto de código.

Ela muda bytes que já estão corretos, e só derrota a esteganografia por forma de normalização quando você pede.

--nfc

Normalizar (NFKC)

O NFC mais as letras matemáticas estilizadas, as ligaduras e as formas de largura completa convertidas em equivalentes simples.

É destrutivo: 𝐛𝐨𝐥𝐝 vira bold e o estilo se perde para sempre.

--nfkc

Espaços no fim da linha

Remove espaços e tabulações no fim de cada linha.

Dois espaços no fim da linha são uma quebra de linha forçada em Markdown.

--trailing

Juntar espaços

Junta as sequências de espaços dentro de uma linha em um só, preservando a indentação.

Alguns formatos dependem dessas sequências: tabelas alinhadas, ASCII art, código.

--collapse

Todos os caracteres com página própria

Cada um destes tem a sua própria página: o que é, de onde vem, quando é legítimo e a resposta honesta para a pergunta se ele é uma marca d'água de IA.

Navegar pelo índice de caracteres

Perguntas

Quantos caracteres ele detecta?

As tabelas nomeiam várias centenas de pontos de código exatamente, e duas regras pega-tudo cobrem todo controle de formatação restante e todo ponto de código de uso privado por propriedade do Unicode, então um caractere criado numa versão futura do Unicode é detectado sem mudança de código. Além disso, o mapa de letras parecidas cobre 1.513 pontos de código.

A limpeza padrão é segura para rodar em qualquer coisa?

Ela foi feita para ser: a limpeza padrão só remove caracteres que são invisíveis E não estão fazendo um trabalho no contexto deles. Ela deixa em paz todo caractere visível, inclusive espaços inquebráveis, aspas tipográficas e travessões. Se você quiser esses alterados, tem que pedir.

E se o meu caractere não estiver listado aqui?

Cole o texto na ferramenta e mande revelar. Tudo o que o mecanismo classifica é relatado com posição, ponto de código, nome Unicode e categoria, tendo ou não uma página aqui.

Estatísticas de uso anônimas?

O Ghostchars processa seu texto no navegador e nunca o envia para lugar nenhum. Gostaríamos de contar as visitas às páginas com um serviço de medição hospedado por nós, com o mínimo de cookies. Nunca o conteúdo, em hipótese alguma.