Modulo 4 - Lección 4 - el juego de caracteres y los editores de texto

Utiliza siempre el mismo juego de caracteres en todo lo que hagas.

Y utiliza UTF-8 sin BOM, que te permite mezclar en un mismo documento textos en cualquier idioma.

Pero ya te avisé en el otro vídeo: hay que saber mucho, mucho más, ya que cuando las cosas empiezan a ir mal, esos dos consejos no son la solución para todos los problemas.

Hace unos días recibí el siguiente correo:

Estoy probando lo del juego de caracteres (usando Notepad++). En el vídeo recomiendas usar UTF8 sin BOM. Resulta que el fichero lo tengo con codificación ANSI, pero si lo cambio a UTF8 sin BOM, el disquete de guardar no se me marca (es decir, no se ha modificado el fichero). Entonces marco UTF8, se marca el disquete y guardo. Ahora selecciono UTF8 sin BOM. Se me marca el disquete y guardo (un pequeño chanchullo para que me permitiese guardar UTF8 sin BOM).

Y el correo continuaba:

Y ahora viene el tema. Si he guardado en UTF8 sin BOM, cuando cierro el fichero y lo vuelvo a abrir, la codificación que me marca es ANSI. ¿Es normal? También veo "Convertir a UTF sin BOM" además de "Codificar en UTF sin BOM" ¿cuál es la diferencia?

Bien, primero vamos a ver qué es eso del BOM. BOM es el acrónimo de Byte Order Mark, la Marca de Orden de Bytes y es un carácter Unicode que se utiliza para indicar el orden de los bytes de un fichero de texto al principio del fichero.

Básicamente existen dos órdenes de bytes, el little-endian y el big-endian, que definen de qué forma se almacenan los datos que ocupan más de un byte en el ordenador. ¿Confuso?

Sí, puede ser muy confuso. Ya sabes, para solucionar los problemas con los juegos de caracteres hay que saber mucho.

Volviendo al BOM, en el caso de UTF-8 es un carácter Unicode que ocupa 3 bytes y que tiene esta representación en hexadecimal (en imagen a la derecha) y aparece representado de esta forma  como carácter. (en imagen a la izquierda)




¿Cuál es el problema de todo esto?

Lo mejor es utilizar UTF-8, nos evitamos problemas, podemos escribir cualquier carácter, podemos mezclar todos los idiomas del mundo.

Pero UTF-8 lleva el BOM, esos tres bytes al principio del fichero, y hay programas que no se llevan muy bien con el BOM.

Por ejemplo, PHP5 no tiene un soporte completo de UTF-8: si vamos a trabajar con PHP5, debemos de utilizar UTF-8 sin BOM. Voy a realizar una demostración práctica con el editor Notepad++ para que lo entiendas mejor. Te voy a mostrar un problema típico que aparece cuando trabajamos con UTF8 y con PHP5.


Ver vídeo para comprobar un ejemplo.



Comentarios

Entradas populares de este blog

Módulo 2 - Lección 8 - Conceptos básicos de HTML (parte 1)

Modulo 4 - Lección 5 - Tablas

Módulo 3 - Lección 20 - Formularios select