robot de la enciclopedia para niños

Marca de orden de bytes para niños

Enciclopedia para niños

La Marca de Orden de Bytes o BOM (por sus siglas en inglés, Byte Order Mark) es como una pequeña señal secreta que se coloca al principio de algunos archivos de texto. Su trabajo principal es decirle a la computadora qué tipo de código se usó para escribir el texto (especialmente si es Unicode) y cómo están organizados los "pedacitos" de información llamados bytes.

Imagina que los bytes son como las letras de una palabra. A veces, las computadoras pueden leer estas "letras" de izquierda a derecha (lo que se llama big-endian) o de derecha a izquierda (little-endian). El BOM ayuda a la computadora a saber cuál de estas formas se usó para que pueda leer el texto correctamente.

Técnicamente, el BOM es un carácter especial de Unicode llamado U+FEFF. Este carácter es invisible para nosotros cuando el texto se muestra correctamente. Sin embargo, si un programa no lo entiende bien, a veces puedes ver unos símbolos extraños al principio del texto, como "". Esto ocurre porque el programa no sabe cómo interpretar esa señal y la muestra como si fuera texto normal.

El BOM es muy útil para que los programas sepan cómo mostrar los caracteres de diferentes idiomas y símbolos de forma correcta.

Marca de Orden de Bytes (BOM)

¿Qué es la Marca de Orden de Bytes?

La Marca de Orden de Bytes, o BOM, es un pequeño dato que se añade al inicio de algunos archivos de texto. Su función principal es indicar a los programas de computadora dos cosas importantes:

  • Qué tipo de codificación se usó para guardar el texto. La codificación es como un diccionario que le dice a la computadora cómo representar cada letra o símbolo.
  • Cuál es el "orden de los bytes". Los bytes son las unidades más pequeñas de información. A veces, las computadoras guardan estos bytes en un orden específico, y el BOM les ayuda a entender ese orden.

¿Cómo funciona el BOM?

El BOM es un carácter especial de Unicode, el sistema de codificación más usado hoy en día para representar texto de casi todos los idiomas del mundo. Este carácter tiene un código único: U+FEFF.

Cuando un programa abre un archivo de texto que tiene un BOM, lo primero que hace es leer este carácter. Si el archivo está codificado en UTF-16 o UTF-32, el BOM le dice al programa si los bytes están organizados de una manera (big-endian) o de otra (little-endian). Piensa en ello como si la computadora leyera los números de izquierda a derecha o de derecha a izquierda.

En el caso de UTF-8, que es otra forma de codificación Unicode, el BOM no es necesario para el orden de los bytes, pero se usa para indicar que el archivo está codificado en UTF-8.

¿Por qué es importante el BOM?

El BOM es importante porque asegura que el texto se muestre correctamente en tu pantalla. Sin él, un programa podría interpretar mal los caracteres, y verías símbolos extraños en lugar de las letras que esperas. Es como si un libro no tuviera un índice y no supieras dónde empieza cada capítulo.

¿Qué pasa si el BOM no se interpreta bien?

Aunque el BOM es invisible cuando todo funciona bien, a veces puede causar problemas:

  • Si un programa es muy antiguo o no está configurado para entender el BOM, puede mostrarlo como una secuencia de caracteres sin sentido al principio del texto, como "". Esto es común si el programa espera una codificación diferente, como ISO/IEC 8859-1.
  • Cuando esto sucede, es posible que otros caracteres especiales o acentuados en el resto del texto tampoco se muestren correctamente.

El carácter U+FEFF, que es el BOM, originalmente también se usaba como un "espacio sin salto de línea de ancho cero", lo que significa que era un espacio invisible que no permitía que una palabra se dividiera al final de una línea. Sin embargo, para evitar confusiones, en las versiones más recientes de Unicode (a partir de la 3.2), se creó otro carácter (U+2060) para esa función. Así, el U+FEFF se usa principalmente como BOM.

Historia del BOM

La idea del BOM ha evolucionado con el tiempo:

  • En julio de 1995, la versión 1.1.5 de Unicode definió el carácter U+FEFF como un "espacio sin salto de línea de ancho cero".
  • En julio de 1996, la versión Unicode 2.0 le dio un nuevo rol al U+FEFF (y a U+FFFE) para ayudar a detectar el orden de los bytes (little-endian o big-endian).
  • En septiembre de 1999, la versión 3.0 de Unicode continuó con esta definición y añadió más explicaciones sobre cómo se usa el BOM en UTF-16 y UTF-8.
  • Hasta marzo de 2002 (Unicode 3.2), U+FEFF era el único carácter con la función de "unir palabras". Pero como se usaba más como indicador de orden de bytes, se creó el carácter U+2060 para la función de unir palabras. Aun así, U+FEFF mantuvo ambos significados por razones de compatibilidad con programas antiguos.
  • A lo largo de los años, se han identificado y resuelto problemas relacionados con el BOM en diferentes lenguajes de programación y sistemas operativos, como Java y Python.
  • En 2005, Microsoft introdujo una función en el programa Bloc de notas que añadía el BOM a los archivos UTF-8, lo que a veces causaba problemas con programas más antiguos en sistemas Unix.

Usos del BOM en diferentes codificaciones

UTF-16 y UTF-32

En UTF-16, el BOM es una secuencia de dos bytes al principio del texto. Estos bytes indican si el texto se escribió en orden big-endian (FE FF) o little-endian (FF FE). El valor U+FFFE nunca es un carácter Unicode válido, lo que lo hace perfecto para detectar el orden de los bytes.

Problemas comunes con el BOM

Aunque UTF-8 no necesita el BOM para el orden de los bytes, muchas aplicaciones de Microsoft Windows (como el Bloc de notas) lo añaden a los archivos UTF-8. Sin embargo, en sistemas tipo Unix, que usan mucho los archivos de texto para configuraciones, esta práctica no es recomendable. El BOM puede interferir con el funcionamiento de algunos códigos importantes, como el "shebang" al inicio de un script (un archivo con instrucciones para la computadora). También puede causar problemas en el código fuente de algunos lenguajes de programación que no lo reconocen. Por ejemplo, en PHP, el BOM puede hacer que una página web empiece a enviarse al navegador antes de que se puedan configurar algunas opciones importantes.

La representación del BOM en UTF-8 es la secuencia de bytes EF BB BF. Si un editor de texto o navegador no está configurado para manejar UTF-8, esta secuencia puede aparecer como los caracteres "".

Aunque el BOM se puede usar con UTF-32, esta codificación casi nunca se utiliza en la práctica para enviar información.

Cómo se ve el BOM en diferentes codificaciones

Aquí te mostramos cómo se representa el BOM en diferentes codificaciones, aunque recuerda que normalmente es invisible:

Codificación Representación
(hexadecimal)
Representación
(decimal)
Representación
(ISO-8859-1)
UTF-8 EF BB BF 239 187 191 
UTF-16
(big-endian)
FE FF 254 255 þÿ
UTF-16
(little-endian)
FF FE 255 254 ÿþ
UTF-32
(big-endian)
00 00 FE FF 0 0 254 255 □□þÿ
(□ es el carácter nulo en ASCII)
UTF-32
(little-endian)
FF FE 00 00 255 254 0 0 ÿþ□□
(□ es el carácter nulo en ASCII)
UTF-7 2B 2F 76, y uno de los siguientes bytes: [ 38 | 39 | 2B | 2F ] 43 47 118, y uno de los siguientes bytes: [ 56 | 57 | 43 | 47 ] +/v, y uno de los siguientes bytes: 8 9 + /
UTF-1 F7 64 4C 247 100 76 ÷dL
UTF-EBCDIC DD 73 66 73 221 115 102 115 Ýsfs
SCSU 0E FE FF 14 254 255 □þÿ (□ es el carácter de cambio de mayúsculas en ASCII)
BOCU-1 FB EE 28 opcionalmente seguido de FF 251 238 40 opcionalmente seguido de 255 ûî( opcionalmente seguido de ÿ
GB 18030 84 31 95 33 132 49 149 51 □1■3 (□ y ■ son caracteres no asignados en ISO-8859-1)

Véase también

Kids robot.svg En inglés: Byte order mark Facts for Kids

  • ISO 10646
  • ISO-8859-1
kids search engine
Marca de orden de bytes para Niños. Enciclopedia Kiddle.