Entender los juegos de caracteres y “collation” [parte 1/2]

Hace ya unos días iniciamos la serie de artículos de “Conceptos de informática” y comenzamos hablando del endian hoy seguimos con esta serie de post y hablaremos de los juegos de caracteres, los llamados charset y los collation que podríamos traducirlo como orden lexicográfico.

Juegos de caracteres

Cuando queremos almacenar información textual sobre una máquina que gestiona y almacena sólo información binaria, tenemos que decidir algún método para formalizar nuestra representación textual en forma de dígito que esta pueda almacenar.

Este método formal será la codificación de cada carácter en un conjunto de valores que puedan ser 0 ó 1. Estos valores serán entendidos por el software como un carácter. En función de que formalismo utilicemos, tendremos un juego de caracteres u otro.

El juego de caracteres más utilizado en el mundo de las computadores hasta hace no mucho es el famoso ASCII (American Standard Code for Information Interchange). Cada carácter se representa por medio de 7 dígitos binarios (aquí podéis ver el listado completo). De esta forma se aprovechaban 7 dígitos para transmitir información y 1 de control de paridad para detectar errores en registros de 8 bits de ancho. Tendríamos un total de 2 elevado a 7 posibles símbolos, 128 en total.

Tabla ASCII

Sin embargo, como podéis suponer el ASCII sólo contemplaba los caracteres anglosajones y por lo tanto los demás idiomas europeos teníamos problemas para escribir nuestros textos en máquinas. Así nacieron los llamados ASCII extendidos cuyo ejemplo más importante es un estándar que a día de hoy sigue plenamente vigente en multitud de sistemas (creo, no os puedo asegurar, que el elegido por defecto para ficheros de texto en sistemas Windows con idiomas occidentales): ISO-8859-1.

Este estándar ya era capaz de almacenar prácticamente todas las letras y símbolos necesarios en Europa Occidental, de hecho contiene 8 bits de datos por carácter, pudiendo almacenar por lo tanto un total de 256 caracteres diferentes. Sin embargo, seguían existiendo problemas de codificación para alfabetos de origen oriental, árabe o hebreo, entre otros.

Del estándar que los resuelve UTF-8 (el que usan prácticamente todas las distribuciones actuales) y de las collation o de cómo indicar explícitamente el orden lexicográfico hablaremos en una próxima entrada.

Acerca de F. Javier Carazo Gil

Casi Ingeniero Informático, co-fundador y administrador de Linux Hispano, co-fundador de Red de Autores y Geometrio, puedes saber más sobre mí, mi vida laboral, mis libros, mis artículos y mi día a día en @fjcarazo y en mi perfil público de LinkedIn.

11 Comentarios:

  1. Pingback: Bitacoras.com

  2. Pingback: AirisPC » Blog Archive » Linux Hispano | Conceptos de informática: Juegos de caracteres y …

  3. Pingback: Tweets that mention Linux Hispano | Conceptos de informática: Juegos de caracteres y “collation” [Parte I] -- Topsy.com

  4. Pingback: Modificar el juego de caracteres de una base de datos y todas sus tablas en MySQL | Linux Hispano

  5. Pingback: Modificar el juego de caracteres de una base de datos y todas sus tablas en MySQL | Superlinux

  6. Pingback: mushkinMX » Blog Archive » Modificar el juego de caracteres de una base de datos y todas sus tablas en MySQL

  7. Pingback: Detectar UTF-8, ASCII e ISO 8859-1 en PHP | Linux Hispano

  8. Ulan dice:

    Gracias, por fin me quedó claro el tema XD.

  9. Pingback: Cortar cadenas UTF-8 en PHP | Linux Hispano

  10. Pingback: Quitar acentos y eñes con PHP | Linux Hispano

  11. Pingback: Quitar acentos y eñes con PHP | Superlinux

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notificarme los nuevos comentarios por correo electrónico. Tambien puedes suscribirte sin comentar.