Largura zero e invisíveis
ZERO WIDTH NO-BREAK SPACE (U+FEFF)
A marca de ordem de bytes, U+FEFF, que editores e mensagens de erro costumam escrever como ufeff. Bem no começo de um arquivo ela anuncia a codificação; em qualquer outro lugar é um nada invisível que ainda por cima proíbe a quebra de linha, uso que o Unicode desaconselha desde a versão 3.2.
- Ponto de código
U+FEFF- Também escrito como
ufeff\ufeff- Categoria
- Largura zero e invisíveis
- Removido por padrão
- Sim
- Opção que governa
- Nenhuma opção necessária
- Pode ser essencial
- Não
Copiar e colar U+FEFF
Para copiar e colar ZERO WIDTH NO-BREAK SPACE (U+FEFF), clique no botão: o próprio caractere vai para a sua área de transferência, e Ctrl+V (Cmd+V no Mac) cola em qualquer lugar onde você possa digitar.
De onde ele vem
De editores do Windows, de exportações do Excel e de tudo o que grava "UTF-8 com BOM". Concatenar vários arquivos assim deixa uma BOM no meio do resultado. Ela também chega pela colagem: copie uma célula de planilha, uma linha de um editor ou o conteúdo de um formulário web e o texto pode começar com um caractere invisível, de modo que a caixa de busca parece a coisa mais normal do mundo e a consulta falha assim mesmo.
Por que ele importa
Uma BOM no início quebra parsers de JSON, front matter YAML, shebangs de shell e cabeçalhos de CSV; uma BOM no meio é simplesmente um caractere invisível que derruba qualquer comparação exata. É também o motivo de um arquivo de configuração "parecer certinho" e não carregar.
Antes e depois
O primeiro caractere, invisível, é o motivo de o `JSON.parse` recusar esta string.
O caractere aparece como uma etiqueta para você ver onde ele fica. No seu texto, ele não desenha absolutamente nada.
Quando ele é legítimo
Como primeiro caractere de um arquivo, no papel de assinatura de codificação, que é uma propriedade do ARQUIVO, não do texto. Quando o texto já está em uma caixa de colar, não sobra nenhuma BOM legítima.
Como remover
A limpeza padrão remove, esteja ela onde estiver. O Ghostchars trabalha com texto, então trata a BOM inicial como texto também.
O seu texto está em um arquivo e não na área de transferência? O relatório do documento para .docx, .odt e .html encontra o caractere dentro do arquivo, junto com os trechos ocultos e as alterações controladas, sem que você precise abri-lo. Se a pergunta é o que o resto do texto faz, e não o que este caractere faz, você pode medir a variação no tamanho das frases e ver onde cada hábito aparece, sem nota e sem afirmar nada sobre quem escreveu o texto.
Ele é uma marca d'água de IA?
Não é marca d'água
Não. Uma BOM é um artefato de codificação produzido por editores e por rotinas de exportação. Ela diz alguma coisa sobre o programa que salvou o arquivo e nada sobre quem escreveu as palavras.
Nenhuma relação com texto gerado por máquina. Ele vem de algum software, de um teclado ou de uma pessoa.
Perguntas
Por que o texto que eu colei começa com um caractere invisível?
Quase sempre é uma BOM que veio junto na cópia: a origem gravou um U+FEFF na frente, e ele veio com todos os caracteres visíveis atrás. A limpeza padrão remove. Se você quiser ver antes de limpar, cole o texto aqui e mude para "Ver o que está oculto": ali o ufeff que fica antes da primeira letra aparece marcado.
Por que o meu JSON não faz parse?
Uma BOM no início é um caractere antes da chave de abertura. A maioria dos parsers de JSON a rejeita como token inesperado, e o erro aponta para a posição 0, onde não há nada visível.
A BOM é a mesma coisa que o word joiner?
No meio de um texto, as duas se comportam igual. O Unicode desaconselhou o U+FEFF nesse papel e fez do U+2060 WORD JOINER o caractere correto, deixando o U+FEFF só como marca de ordem de bytes.
Confira o seu próprio texto
Cole qualquer coisa no limpador para ver todos os caracteres ocultos que ela contém, com posição, ponto de código e o que acontece com cada um. Nada é enviado para lugar nenhum.
Confira o seu próprio textoLimpar no Chrome na hora de colarLimpar no seu Mac com um atalho de tecladoTodos os caracteres