Desarrollador Web, Gerente de la unidad de desarrollo de Maxnegocios.com.

Eliminar BOM para validar tu pagina web

| miércoles, 30 de septiembre de 2009
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: 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.

Cuando aparece el BOM
La marca de BOM es añadida por nuestro editor de texto/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.

Puedes pensar que es obvio, si el index de tu página produzca el 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.

Un error común de BOM
"Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\www\gbelandria\index.php:1) in C:\xampp\htdocs\www\gbelandria\index.php on line 3"

Cuando trabajamos con cookies, el explorador nos indica que no puede imprimir nada antes de la cabecera, esto es una señal tipica de que el archivo tienen BOM.

El BOM es una ladilla

0 comentarios: