HTML-Validierungsfehler: Nicht Leerzeichen, die vor DOCTYPE gefunden wurden

8

Ich habe einen Blog (WordPress basiert). Und versuche, mit w3c validator eine meiner Seiten zu validieren. Der erste Fehler ist:

%Vor%

Auch DebugBar (http://www.my-debugbar.com/wiki/IETester/HomePage) stimmen zu und zeigen zwei unsichtbare Zeichen vor <! , wenn ich die gleiche Seite von der "HTML Check" Registerkarte in diesem Tool öffne . ABER !!

  1. Diese Zeile HTML-Code stammt aus der Datei header.php in meinem Wordpress-Theme.
  2. Ich lade diese Datei von meinem Hoster auf meine lokale Festplatte herunter.
  3. Die erste Zeile von header.php ist <!DOCTYPE html><!-- HTML 5 -->
  4. Wenn ich header.php in RJ TextEd (nur fortgeschrittener Texteditor) öffne, heißt es: Aktuelle Kodierung für header.php ist UFT-8 ohne (!) BOM.
  5. Wenn ich header.php in HEX-viewer öffne, sehe ich, dass Byte 0 und 1 3c, 21 ist - also genau <! .

Also, alles in allem, warum & amp; Woher bekomme ich diese "ungeraden Symbole"?

    
Smarty 08.11.2011, 14:29
quelle

1 Antwort

17

Ich habe die Wurzel des Problems gefunden. Die allgemeine Regel lautet:

  

Wenn irgendwelche (absolut irgendwelche!) Akten, die an der Konstruktion der   Code der letzten HTML-Seite (die an den Client gesendet wird) hat eine Kodierung   mit BOM - endgültige HTML-Seite wird UTF-8-BOM sein. Das ist: du ganze Seite   sollte NICHT 1 Datei mit BOM enthalten.

In meinem Fall habe ich insgesamt 1.3K Dateien, die meine Seite ausmachen. Nur 4 Dateien wurden gezählt:

  • wp-config.php (im Stammverzeichnis der Site)
  • jquery.query.js (im Include-Ordner)
  • cyr-to-lat.php (im Plug-In-Ordner)
  • footer.php (im Stammverzeichnis des Themas)

Und ich wurde gezwungen, alle diese vier Dateien als "UFT-8 ohne BOM" zu speichern, um den Validierungsfehler "Nicht Leerzeichen" zu entfernen. Wenn ich das getan habe (Dateien erneut speichern) - Fehler ist weg.

    
Smarty 09.11.2011, 08:07
quelle