Error de validación de HTML: se encontraron caracteres sin espacios antes de DOCTYPE

Tengo un blog (basado en wordpress). E intente validar por el validador w3c una de mi página. El primer error es:

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

Además, DebugBar (http://www.my-debugbar.com/wiki/IETester/HomePage) acepta y muestra dos caracteres invisibles antes <! cuando abro la misma página desde la pestaña "Verificación HTML" dentro de esta herramienta. ¡¡PERO!!

  1. Esta línea de código HTML proviene del archivo header.php en mi tema de wordpress.
  2. Descargo este archivo de mi proveedor de alojamiento a mi disco duro local.
  3. La primera linea de header.php is <!DOCTYPE html><!-- HTML 5 -->
  4. Cuando abro header.php en RJ TextEd (solo editor de texto avanzado) dice: codificación actual para header.php es UFT-8 sin(!) BOM.
  5. Cuando abro header.php en HEX-viewer, veo que el byte 0 y 1 es 3c, 21, por lo que es exactamente <!.

Entonces, considerando todas las cosas, ¿por qué y de dónde obtengo estos "símbolos extraños"?

preguntado el 08 de noviembre de 11 a las 14:11

Hasta que leí los puntos 4 y 5, pensé que la respuesta era bastante simple. Esto es interesante. -

1 Respuestas

Encontré la raíz del problema. La regla general es:

Si algún archivo (¡absolutamente alguno!) Que participa en la construcción del código de la página HTML final (la que se enviará al cliente) tiene codificación con BOM, la página HTML final SERÁ UTF-8-BOM. Es decir: todo el sitio debería NO contener incluso 1 archivo con BOM.

En mi caso, tengo un total de 1.3K archivos que componen mi sitio. Solo 4 archivos fueron BOMed:

  • wp-config.php (en la raíz del sitio)
  • jquery.query.js (en la carpeta de inclusión)
  • cyr-to-lat.php (en la carpeta de complementos)
  • footer.php (en la carpeta raíz del tema)

Y me vi obligado a volver a guardar todos y cada uno de estos 4 archivos como "UFT-8 sin BOM" para deshacerme del error de validación de "Caracteres sin espacio". Cuando hice esto (volver a guardar archivos), el error desapareció.

respondido 09 nov., 11:12

Gracias. Más allá del error de validación, estaba obteniendo un gran espacio en blanco justo encima del menú de navegación de mi sitio de WordPress, lo que realmente me hizo luchar durante días tratando de identificar qué estaba causando el problema del espacio en blanco ... Luego cambié la codificación en Smultron.app para Mac y eliminé la opción UTF-8 BOM, volví a cargar los archivos de mi tema y se resolvió. - Adriano Monecchi

Me encantan estos tipos de errores de validación :) ¿Alguien probó esta solución con Notepad ++? Será muy difícil guardar cada archivo nuevo con utf8-without-bom codificado ... - Kerim Yagmurcu

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.