2011-11-08 15 views
8

Ho un blog (basato su wordpress). E prova a convalidare con w3c validator una delle mie pagine. Il primo errore è:Errore di convalida HTML: caratteri non spaziali trovati prima DOCTYPE

Line 1, Column 1: Non-space characters found without seeing a doctype first. Expected <!DOCTYPE html>. 
<!DOCTYPE html><!-- HTML 5 --> 

Inoltre, DebugBar (http://www.my-debugbar.com/wiki/IETester/HomePage) d'accordo e mostrano due caratteri invisibili prima <! quando apro la stessa pagina da " Scheda "Verifica HTML" all'interno di questo strumento. MA!!

  1. Questa linea di codice HTML provengono dal file header.php nel mio tema wordpress.
  2. Scarico questo file dal mio hoster al mio HDD locale.
  3. La prima linea di header.php è <!DOCTYPE html><!-- HTML 5 -->
  4. Quando apro header.php a RJ TextEd (solo editor di testo avanzato) si dice: corrente di codifica per header.php è UFT-8 senza (!) BOM.
  5. Quando apro header.php in HEX-viewer vedo che il byte 0 e 1 è 3c, 21 - quindi è esattamente <!.

Quindi, tutto considerato, perché & da dove ottengo questi "simboli dispari"?

+0

Prima di leggere i punti 4 e 5, ho pensato che la risposta fosse abbastanza semplice. Questo è interessante. –

risposta

17

Ho trovato la radice del problema. La regola generale è:

If any(absolutely any!) file that take part in construction of the code of final HTML-page(the one to be sended to client) has encoding with BOM - final HTML-page WILL BE UTF-8-BOM. That is: you whole site should NOT contain even 1 file with BOM.

Nel mio caso ho totale 1.3K file che compongono il mio sito. Solo 4 i file è stato BOMed:

  • wp-config.php (in radice del sito)
  • jquery.query.js (in includono cartella)
  • Cyr-to-lat.php (a plug nella cartella)
  • footer.php (nella cartella principale tema)

e sono stato costretto a ri-salvare ogni e tutti questi 4 file come "UFT-8 senza BOM" per sbarazzarsi di "non -space caratteri "errore di convalida. Quando ho fatto questo (ri-salvare i file) - l'errore è sparito.

+1

Grazie, questo errore mi stava facendo impazzire! –

+0

Grazie. Oltre l'errore di convalida stavo ottenendo un enorme spazio vuoto proprio sopra il mio menu di navigazione del sito WordPress che mi ha fatto davvero fatica per giorni a cercare di identificare ciò che stava causando il problema dello spazio bianco ... Ho poi cambiato la codifica in Smultron.app per Mac e rimosso l'opzione BOM UTF-8, ha ricaricato i file del mio tema ed è stato risolto !! –

Problemi correlati