Pulisci file di codice sorgente di caratteri invisibili

Ho un bizzarro problema: da qualche parte nel mio codice HTML / PHP c’è un personaggio nascosto, invisibile di cui non riesco a liberarmi. Copiandolo da Firebug e convertendolo, l’ho identificato come  o ‘Spazio zero senza interruzioni’. Si presenta come nodo di testo non vuoto nel mio sito Web e causa un grave problema di layout.

Il problema è che non posso liberarmene. Non riesco a vederlo nei miei file anche quando si accende Invisibles (d’uh). Non riesco a trovarlo, nessuno strumento di ricerca sembra capirlo. Ho riscritto il mio codice in base a dove poteva essere, ma sembra essere in qualche punto più profondo in uno dei file framework.

Qualche buon strumento per trovare i caratteri tramite charcode su file o qualcosa del genere? (Mac OS X)

Non si ottiene il personaggio nell’editor, perché non lo si può trovare negli editor di testo. #FEFF o #FFFE sono i cosiddetti marchi di ordine dei byte . Sono un’invenzione di Microsoft per raccontare in un file Unicode, in cui sono memorizzati i caratteri multibyte dell’ordine.

Per eliminarlo, comunica al tuo editor di salvare il file come ANSI / ISO-8859 o come Unicode senza BOM . Se il tuo editor non può farlo, dovrai cambiare editor (purtroppo) o usare qualche tipo di strumento di troncamento come, ad esempio, un editor esadecimale che ti consenta di vedere come appare veramente il file.

Su googleing, sembra che TextWrangler abbia una modalità “UTF-8, senza BOM”. Altrimenti, se sei a tuo agio con il terminale, puoi usare Vim:

 :set nobomb 

e salva il file. Presto!

I personaggi sono sempre i primi in un file di testo. Gli editori con il supporto per la BOM non lo faranno vedere, come ho detto, a voi.

Saluti,

Se stai usando Textmate e il problema è in un file UTF-8:

  1. Apri il file
  2. File> Riapri con codifica> ISO-8859-1 (Latin1)
  3. Dovresti essere in grado di vedere e rimuovere il primo carattere nel file
  4. File> Salva
  5. File> Riapri con codifica> UTF8
  6. File> Salva

Funziona sempre per me.

È un marchio di ordine dei byte . Sotto Mac OS X: apri la finestra del terminale, vai alle tue fonti e digita:

 grep -rn $'\xFEFF' * 

Ti mostrerà i numeri di riga e i nomi di file che contengono BOM.

usa notepad plus plus .. c’è un’opzione per mostrare tutti i caratteri

Non sono un utente Mac, ma il mio consiglio generale sarebbe: quando tutto il resto fallisce, usa un editor esadecimale . Molto utile in questi casi.

Vedi “Confronto di editor esadecimali” in WikiPedia .

vi o vim mostrerà qualsiasi carattere non EOL.

Sono abbastanza sicuro che Textwrangler lo farà.

EDIT: link VersionTracker come Bare Bones sembra essere di nuovo inattivo.

  1. Incolla il contenuto in Notepad ++
  2. In Codifica menu -> Converti in ANSI

E tu sei bello andare.