html - validar - Cómo reparar la advertencia de validación de "Marca de orden por bytes en el archivo UTF-8"
w3c validator español (4)
Así es como lo arreglé esto:
Descargar e instalar Notepad++
Abra el archivo con Notepad ++
En el menú, seleccione "Codificación" y configúrelo como "Codificar en UTF-8 sin lista de materiales".
Guarde el archivo y la lista de materiales se habrá ido.
Tengo una página xhtml que valida bajo el doctype estricto xhtml, pero obtengo esta advertencia que trato de entender y corrijo.
Justo, ¿cómo puedo encontrar esta "Marca de Byte" errante? Estoy editando mi archivo usando Visual Studio, no estoy seguro si eso ayuda.
Marca de orden de byte de advertencia encontrada en el archivo UTF-8.
Se sabe que la Marca de Orden de Byte Unicode (BOM) en archivos con codificación UTF-8 causa problemas a algunos editores de texto y navegadores más antiguos. Es posible que desee considerar evitar su uso hasta que esté mejor soportado.
BOM a veces se encuentra dentro del texto, no al principio - si un archivo ha sido ensamblado por php desde otros archivos utilizando, por ejemplo, include_once () . Para eliminarlo, elimine el área entre al menos un carácter antes de la BOM y al menos un carácter después de la BOM (por si acaso). La posición de BOM se puede ubicar en F12 Developer Tools de Internet Explorer y probablemente Edge. Se visualiza como un diamante / rombo negro .
Visual Studio y WebMatrix pueden guardar archivos con o sin firma (al principio).
BOM causa errores durante la validación ( https://validator.w3.org/#validate_by_upload ) o en consolas - </ HEAD> se puede tratar como elemento huérfano sin <HEAD>, cuando aparentemente está presente!
Error: cabezal de etiqueta de final de callejón sin salida.
<BODY> como el segundo <BODY>, cuando solo existe un <BODY> y todo es correcto:
Error: se ha visto el cuerpo de la etiqueta de inicio, pero ya estaba abierto un elemento del mismo tipo.
Y todo el documento puede verse sin DOCTYPE, cuando BOM o dos BOMS ocupan la primera línea y DOCTYPE está en segunda línea, con un mensaje similar al siguiente:
Error: caracteres sin espacio encontrados sin ver un tipo de documento primero. Esperado, por ejemplo, <! DOCTYPE html>.
Error: a la cabecera del elemento le falta una instancia obligatoria del título del elemento secundario.
Error: Doctype perdido.
Error: Stray start tag html.
Error: cabeza de la etiqueta de inicio perdida.
Error: El nombre del atributo no está permitido en la meta del elemento en este punto.
Error: a Element meta le falta uno o más de los siguientes atributos: itemprop, property.
Error: El atributo http-equiv no permitido en el elemento meta en este punto.
Error: a Element meta le falta uno o más de los siguientes atributos: itemprop, property.
Error: El nombre del atributo no está permitido en la meta del elemento en este punto.
Error: a Element meta le falta uno o más de los siguientes atributos: itemprop, property.
Error: al elemento de enlace le falta la propiedad de atributo requerida.
Error: El nombre del atributo no está permitido en la meta del elemento en este punto.
Error: a Element meta le falta uno o más de los siguientes atributos: itemprop, property.
Error: El nombre del atributo no está permitido en la meta del elemento en este punto.
Error: a Element meta le falta uno o más de los siguientes atributos: itemprop, property.
Error: El nombre del atributo no está permitido en la meta del elemento en este punto.
Error: a Element meta le falta uno o más de los siguientes atributos: itemprop, property.
Error: Título del elemento no permitido como elemento secundario del cuerpo del elemento en este contexto. (Supresión de más errores de este subárbol).
Error: estilo del elemento no permitido como elemento secundario del cuerpo del elemento en este contexto. (Supresión de más errores de este subárbol).
Error: cabezal de etiqueta de final de callejón sin salida.
Error: se ha visto el cuerpo de la etiqueta de inicio, pero ya estaba abierto un elemento del mismo tipo.
Error fatal: no se puede recuperar después del último error. Cualquier otro error será ignorado.
( https://validator.w3.org/#validate_by_uri )
Y transmisión de mensajes en la consola IE F12 Developer Tools:
HTML1527: DOCTYPE esperado. Considere agregar un tipo de documento HTML5 válido: "<! DOCTYPE html>".
HTML1502: DOCTYPE inesperado. Solo se permite un DOCTYPE y debe ocurrir antes de cualquier elemento.
HTML1513: etiqueta adicional "<html>" encontrada. Solo debe existir una etiqueta "<html>" por documento.
HTML1503: etiqueta de inicio inesperada. HTML1512: etiqueta final sin igual.
Todo causado por un BOM al principio. Y Depurador muestra un rombo negro en la primera línea.
Los archivos guardados con firma, pero no ensamblados por php, no causan dichos errores y los diamantes negros no son visibles en el depurador de IE. Entonces quizás php transforme BOM de alguna manera. Parece que el archivo php principal se debe guardar con la firma para ver esto.
Esos caracteres extraños ocurren al principio y / o en los bordes de los archivos combinados con include_once () y no son visibles cuando los archivos se guardan antes sin firma. Esta es la razón por la que apunta a la implicación en la lista de materiales.
Me di cuenta de esto todo anteayer cuando comencé a convertir mi sitio web a HTML5 y validarlo.
BOM también puede crear una pequeña sangría al comienzo de la línea. Dos archivos que contienen texto idéntico pero uno con sangría.
En Linux :
Abra el archivo con Geany .
En el menú " Dokument " desmarque " Escribir BOM Unicode ".
Guarde el archivo.
La parte de ubicación de su pregunta es fácil: la marca de orden de bytes (BOM) estará al principio del archivo.
Cuando edite el archivo, vaya a File | Advanced Save Options...
File | Advanced Save Options...
y debe encontrar un menú desplegable "Codificación" (junto con un menú desplegable "Fin de línea"). Probablemente esté configurado para usar "Unicode (UTF-8 con firma) - Página de códigos 65001". Si se desplaza un poco hacia abajo, puede encontrar "Unicode (UTF-8 sin firma) - Página de códigos 65001". Eso debería hacerlo (si quieres). Algunos sistemas pueden confundirse con una lista de materiales en un archivo UTF-8, como lo indica la advertencia.
Consulte también esta nota en las preguntas frecuentes del sitio Unicode sobre los archivos BOM y UTF-8. No tiene otra función más que decir que el archivo es, de hecho, UTF-8. En particular, no tiene ningún efecto en el orden de bytes (la razón principal por la que tenemos listas de materiales), porque el orden de bytes de UTF-8 es fijo.