Hola, somos Arume

Desarrollamos páginas web, aplicaciones para móviles, capas de realidad aumentada y aplicaciones para Facebook. Nos apasiona la informática y somos unos perfeccionistas incurables; por eso en nuestros proyectos utilizamos estándares.

tel. 625 519 694

Mendaña de Neyra, 34, 3º B, 15008, A Coruña

Autenticarse

Registrarse. ¿Has olvidado tu contraseña?

Etiquetas

Saltar las etiquetas

Suscríbete a las RSS

Estás en:

BOM en UTF-8, ¿qué es?

30 Nov 2010 por Jose

Comentarios: 13

UTF-8

¿Alguna vez os ha sucedido que al editar ficheros que no fueron creados por vosotros, o probando en un servidor de otro sistema, aparezcan carácteres extraños al comienzo del mismo? ¿o incluso que muestre errores porque ya se han enviado las cabeceras, y no encuentras dónde sucede?

No tienes por qué preocuparte, se trata del BOM que se utiliza en codificaciones Unicode.

El uso de la codificación de caracteres UTF-8 está extendiéndose por la web gracias a su compatibilidad con ASCII (cualquier carácter ASCII se mostraría sin cambios) y ser capaz de representar cualquier carácter Unicode. El BOM es un carácter 0xFEFF son la serie de caracteres 0xef 0xbb 0xbf que se coloca al comienzo de los archivos y que se usa como marca para indicar que el texto está codificado en UTF-8; en un texto con codifcación ISO-8859-1 se representaría como "".

El significado real del carácter BOM es zero-width no-break space por lo que no suele aparecer en la mayoría de las codificaciones y aunque el uso de este carácter en UTF-8 está desaconsejado o no se recomienda, su uso no debería provocar problemas.

¿Por qué se muestra entonces en mi página web?

Dependiendo de la configuración del editor utilizado puede que añada de forma predeterminada el BOM a los ficheros UTF-8. Esto pasa principalmente en aplicaciones Windows que al ejecutarlas en sistemas Linux suelen interferir con el proceso normal de éstas, por ejemplo, en PHP comenzando a enviar el BOM al navegador, y evitando que las cabeceras se especifiquen correctamente.

¿Cómo puedo solucionarlo?

Simplemente deberemos editar el fichero con un editor de texto que nos permita el cambio de configuración y guardaremos este con formato UTF-8 sin BOM. Editores como Dreamweaver, Zend Studio o el editor gratuito Notepad++ permiten esta operación.

Comentarios

13 comentarios. Comentar.

1. Carlos el 09 Mar 2012 a las 04:04:01

Gracias. Me sirvió mucho.

2. Ciul el 29 Mar 2012 a las 01:25:36

Gracias, me sirvió mucho.

Me estaba generando un espaciado con comillas " " en el HTML de mi sitio, por lo que me estaba corriendo la página.

3. Borias el 28 Ago 2012 a las 19:25:57

Genial, buena explicacion

4. Nita Kharsdala V. el 23 Dic 2012 a las 08:42:24

Gracias por la explicación.

5. Alejandro el 22 Ago 2013 a las 05:22:03

Gracias, no podría haber estado más claro.

6. Faustino el 16 Sep 2013 a las 02:14:24

Me sirvió mucho, trabajo con gettext en windows y fedora y ya me tenían harto los errores de encoding

:-)

7. Anónimo el 03 Dic 2013 a las 19:02:18

Gracias. Muy claro.

8. carlos el 06 Dic 2013 a las 10:40:25

Hola, he codificado en UTF-8 sin BOM una base de datos para geolocalizarla en arcGIS. Al ver el mapa en un iPad o iPhone, aparece, en las letras acentuadas y ñ, el código html, correspondiente a esa letra. ¿qué hay que hacer para que se vea correctamente?

9. Luis el 12 Dic 2013 a las 13:12:48

Hola carlos.

La codificación de caracteres no convierte los mismos a código HTML. Si fuese un problema de codificación verías signos extraños. Si lo que ves son códigos HTML será porque en alguna parte de la aplicación se están conviertiendo los signos.

Un saludo.

10. mitxu el 19 Dic 2013 a las 11:20:17

Si en NOtepad++ indico UTF sin Bom, no me respeta acentos, etc...sin embargo si indico UTF-8 solvento el problema. Tiene algún problema posterior poner UTF-8?.

En el bloc de notas, cómo lo codifico? como UTF-8? 0 c´omo ANSI?

11. Luis el 19 Dic 2013 a las 11:47:54

Hola mitxu.

Siento decirte que no comprendo bien tu problema.

De lo que entiendo, dices que Notepad++ no te respeta los acentos si codificas en UTF-8 sin BOM pero sí si lo codificas en UTF-8 (con BOM). Eso en principio no es posible. La codificación es la misma (UTF-8). La diferencia es sólo si se añade BOM o no en el archivo. En Notepad++ se verán igual los archivos con y sin BOM. Los problemas pueden venir por otras aplicaciones que lean sólo con o sin BOM, pero no en Notepad++.

No puedo ayudarte más sin información adicional, porque no se si tu problema es que tienes un archivo en ANSI y lo quieres convertir a UTF-8, si quieres crear archivos directamente en UTF-8 y no sabes si ponerle o no BOM o si el problema es que el archivo generado no te funciona bien en otra aplicación.

Un saludo.

12. mitxu el 20 Dic 2013 a las 10:36:00

Muchas gracias por tu interes.

Soy novata en diseño web y he empezado a generar mis paginas tanto usando bloc de notas como notepad.

En el blocde notas, al guardar me pide una codificación, ¿Cuál es la correcta? ANSI o UTF-8?.

Si uso el notepad++ y lo codifico como UTF-8, al comprobar mi trabajo en elnavegador no hay problema,sin embargo he leido q es recomendable quitar el BOM para que no de probelmas en otras aplicaciones,pero si lo hago,en el navegador no aparecen ni acentos, ni "ñs" etc...No sé si se me entiende mejor ahora.

13. Luis el 20 Dic 2013 a las 11:03:06

Hola de nuevo mitxu.

Me alegro de ver que estás empezando en esto (y no utilizas Dreamweaver).

Supongo que cuando dices Notepad te refieres a Notepad++ (Notepad "a secas" es el bloc de notas).

Lo que preguntas de cuál es la codificación correcta, depende de qué codificación quieras usar en tu página web. Si vas a usar UTF-8, pues esa. Si vas a usar ISO-8859-1 (Latin 1), utiliza ANSI.

Sobre lo que dices de que si quitas el BOM no se ve bien, puede haber dos causas:

1.- En Notepad++ utiliza la opción "Convertir a UTF-8 sin BOM" no uses "Codificar en UTF-8 sin BOM".

2.- Tu archivo está en UTF-8 sin BOM pero en navegador lo está sirviendo como ISO-8859-1 (que es lo que hace por defecto para español) porque no sabe qué codificación debe usar (si tiene BOM ya sabe que es UTF-8). Para arreglar eso deberías indicarle al navegador que debe usar UTF-8. Esto puedes hacerlo cambiando la configuración del servidor o con una meta en el HTML como indican en este enlace: http://blogs.ua.es/webdev/2009/06/25/problemas-de-codific...

Un saludo.

Comentar

Comentar de forma anónima

Puedes comentar poniendo cualquier nombre o apodo, exceptuando los nombres de usuarios registrados. Máximo de 50 caracteres.

Comentar como usuario registrado

Registrarse. ¿Has olvidado tu contraseña?