Limpar arquivos de código fonte de caracteres invisíveis

Eu tenho um problema bizarro: em algum lugar no meu código HTML / PHP, há um personagem invisível e invisível que não consigo me livrar. Ao copiá-lo do Firebug e convertê-lo, identifiquei-o como  ou ‘Espaço sem quebra de largura zero’. Ele aparece como um nó de texto não vazio no meu site e está causando um sério problema de layout.

O problema é que não consigo me livrar disso. Eu não posso ver isso em meus arquivos, mesmo quando estiver ativando Invisibles (d’uh). Eu não consigo encontrá-lo, nenhuma ferramenta de pesquisa parece pegar nele. Eu reescrevi meu código em torno de onde poderia estar, mas parece estar em algum lugar mais profundo em um dos arquivos de estrutura.

Alguma boa ferramenta para encontrar caracteres por charcode nos arquivos ou algo assim? (Mac OS X)

Você não consegue o personagem no editor, porque você não pode encontrá-lo em editores de texto. #FEFF ou #FFFE são as chamadas marcas de ordem de byte . Eles são uma invenção da Microsoft para contar em um arquivo Unicode, em que ordem os caracteres de múltiplos bytes são armazenados.

Para se livrar dele, diga ao seu editor para salvar o arquivo como ANSI / ISO-8859 ou como Unicode sem BOM . Se o seu editor não puder fazê-lo, você terá que trocar os editores (infelizmente) ou usar algum tipo de ferramenta de truncamento como, por exemplo, um editor hexadecimal que permite que você veja como o arquivo realmente parece.

No googleing, parece que o TextWrangler tem um modo “UTF-8, no BOM”. Caso contrário, se você estiver confortável com o terminal, você pode usar o Vim:

 :set nobomb 

e salve o arquivo. Presto!

Os personagens são sempre os primeiros em um arquivo de texto. Editores com suporte para a BOM não irão, como eu mencionei, mostrar para você.

Felicidades,

Se você estiver usando o Textmate e o problema estiver em um arquivo UTF-8:

  1. Abra o arquivo
  2. Arquivo> Reabrir com codificação> ISO-8859-1 (Latin1)
  3. Você deve poder ver e remover o primeiro caractere no arquivo
  4. Arquivo> Salvar
  5. Arquivo> Reabrir com codificação> UTF8
  6. Arquivo> Salvar

Isso funciona para mim o tempo todo.

É uma marca de ordem de bytes . No Mac OS X: abra a janela do terminal, vá para as suas fonts e digite:

 grep -rn $'\xFEFF' * 

Ele mostrará os números de linha e os nomes de arquivos que contêm a lista de materiais.

use notepad plus plus .. existe uma opção para mostrar todos os caracteres

Eu não sou um usuário de Mac, mas meu conselho geral seria: quando tudo mais falhar, use um editor hexadecimal . Muito útil em tais casos.

Veja “Comparação de editores hexadecimais” em WikiPedia .

O vi ou o vim exibirá todos os caracteres não-EOL.

Tenho certeza que o Textwrangler vai fazer isso.

EDIT: Link VersionTracker como site Bare Bones parece estar em baixo novamente.

  1. Cole o conteúdo no Notepad ++
  2. Em Codificação de Menu -> Converter em ANSI

E você é bom para ir.

Intereting Posts