Comunidad de diseño web y desarrollo en internet

Eliminar BOM para validar tu pagina web

En ocasiones cuando estamos validando nuestra página para cumplir los estándares del w3c nos muestra una advertencia al principio que hasta a cualquier desarrollador puede sonarle a chino. Es la siguiente:

Código :

    Warning Byte-Order Mark found in UTF-8 File.

    The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is 
known to cause problems for some text editors and older browsers. 
You may want to consider avoiding its use until it is better supported.


Aqui descubriremos que significa Byte-Order Mark (BOM) y como podemos deshacernos de ella de una forma total y definitiva. ( aplicable también a blogs como por ejemplo wordpress, que parece que ocasionalmente sucede).

¿Qué es el BOM?

Su significado es Byte Order Mark (BOM) y son unos carácteres que se sitúan al principio de un archivo codificado como UTF-8 para avisar a las máquinas que lo procesen si deben leer y guardar ese archivos mediante el metodo big-endian o little-endian. Estos dos metodos simplemente se basan en la manera en como se almacenan los datos, no estamos hablando de formatos o lenguajes ahora mismo sino de codigo binario cosa que normalmente a un programador web a menos de que haya alcanzado al nivel 100 no necesitaria (normalmente) entender.

Cual es el problema que nos plantea el w3c?

Pues que alguno de nuestros archivos tiene esa marca al principio y que algunos navegadores (quien va a ser sino... IE) podría malinterpretarlas (leí que a veces insertaba un salto de linea).

Algunas personas se aventuraran en un fugaz pensamiento a decir... bueno pos lo eliminamos y ya esta. Y yo os respondo hazlo si puedes ;-). La marca de BOM es un carácter de tipo: zero-width no-break space que viene a ser un carácter sin ancho ni espacio, osease que no se ve. Los editores de texto convencionales no nos sirven ya que al no existir un carácter que represente esta marca ni se vera ni ocupara espacio en nuestro editor de código habitual.

Cuando aparece el BOM


La marca de BOM es añadida por nuestro editor de texo/código automáticamente, algunos editores te permiten elegir si añadirla o no en sus preferencias o cuando guardas el archivo, otros no tienen la capacidad de añadirla y otros la añaden siempre (posiblemente la ultima posibilidad es la que generó nuestro pequeño problema...).

Cómo quitarlo


Muchos sitios recomiendan que abras tu archivo en un editor que te permita guardar archivos como UTF-8 no BOM y que lo guardes con ese formato pero yo personalmente aunque pueda funcionar, ese método no lo recomiendo ya que la única manera de saber si funcionó es validando tu archivo, nunca sabrás donde estaba el fallo ni si lo estas arreglando en el archivo correcto.

Podéis pensar que es obvio, si el index de tu página produzca el infame error es que ese archivo contiene el BOM. Pero, este error puede saltar por cualquier archivo adjunto a nuestro html/php. Puede ser un js externo, un include de php, cualquier fichero que incluyamos a nuestro archivo puede ser el responsable. Así que vayamos a la parte práctica.

Eliminar BOM editando el código binario


La única manera de saber con seguridad si un archivo contiene la marca maligna es abrirlo con un editor hexadecimal y comprobar si contiene el carácter al principio de todo. El código hexadecimal para BOM es “EF BB BF” asi que tendremos que comprobar todos los archivos que usemos en nuestra web.

AVISO: no modificar ningún otro código de nuestro archivo o podría explotar el router/modem y la metralla podría perforar la torre y destruir por completo el hard drive


Hay varios editores hexadecimales yo particularmente use Hex Fiend para mac (gratuito)

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate