domingo, 11 de noviembre de 2012

Niveles de Codificación Múltiples


Qué es la codificación de caracteres

Cuando hablamos de codificación de caracteres en informática nos referimos al método que permite convertir un caracter de un lenguaje natural (alfabeto o silabario) en un símbolo de otro sistema de representación, por ejemplo en un número, una secuencia de pulsos eléctricos en un sistema electrónico, octetos aplicando normas o reglas de codificación. Esto con la finalidad de facilitar el almacenamiento de texto en computadoras o para facilitar la transmisión de texto a través de la redes de telecomunicaciones, un ejemplo muy simple puede ser el del código morse.
Convencionalmente juego de caracteres y codificación de caracteres eran considerados sinónimos, por eso se puede defirnir a ambos cómo charset que es un completo sistema de codificación de caracteres en una secuencia de octetos.

Tipos principales de codificación

También son llamadas normas de codificación y definen la forma en la que se codifica un carácter dado en un símbolo en otro sistema de representación, aquí sólo voy a definir los más utilizados:

ASCII

De sus siglas en inglés American Standard Code for Information Interchange (Código Estadounidense Estándar para el Intercambio de Información), pronunciado generalmente [áski], es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.


El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1 que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español.

Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto.ASCII, como otros códigos de representación de caracteres, especifica una correspondencia entre cadenas de bits y símbolos escritos de la lengua, permitiendo de esta forma la comunicación entre dispositivos digitales así como su procesado y almacenamiento. El código de caracteres ASCII[1] — o una extensión compatible (ver más abajo) — se usa casi en todos los ordenadores, especialmente ordenadores personales y estaciones de trabajo. El nombre más apropiado para este código de caracteres es “US-ASCII”.



      ! ” # $ % & ‘ ( ) * + , – . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
ASCII es, en sentido estricto, un código de siete bits, lo que significa que usa cadenas de bits representables con siete dígitos binarios (que van de 0 a 127 en base decimal) para representar información de caracteres. En el momento en el que se introdujo el código ASCII muchos ordenadores trabajaban con grupos de ocho bits (bytes u octetos), como la unidad mínima de información; donde el octavo bit se usaba habitualmente como bit de paridad con funciones de control de errores en líneas de comunicación u otras funciones específicas del dispositivo. Las máquinas que no usaban la comprobación de paridad asignaban al octavo bit el valor cero en la mayoría de los casos, aunque otros sistemas como las computadoras Prime, que ejecutaban PRIMOS ponían el octavo bit del código ASCII a uno.
El código ASCII define una relación entre caracteres específicos y secuencias de bits; además de reservar unos cuantos códigos de control para el procesador de textos, y no define ningún mecanismo para describir la estructura o la apariencia del texto en un documento ; estos asuntos están especificados por otros lenguajes como los lenguajes de etiquetas.
Caracteres Imprimibles en ASCII

ASCII Extendido

Se denomina ASCII extendido a cualquier juego de caracteres de 8 bits en el cual los códigos 32 a 126 (0×20 a 0x7E) coinciden con los caracteres imprimibles de ASCII, así como los caracteres comúnmente llamados “de espacio”, estos son los códigos de control de 8 a 13 (0×08 a 0x0D), ambos inclusive.
Las codificaciones de ASCII extendido utilizan además parte o la totalidad de los códigos superiores a 128 para codificar caracteres adicionales a los caracteres imprimibles ASCII.

Codificaciones “ASCII extendido” más comunes:
  • Página de códigos 437 (usual en las versiones en inglés del IBM PC y MS-DOS)
  • Página de códigos 850 (usual en las versiones de Europa occidental del IBM PC y MS-DOS)
  • Latin-1 (ISO-8859-1) (típico de Unix y, con modificaciones, en Microsoft Windows y Macintosh)


Unicode

Unicode es un estándar industrial cuyo objetivo es proporcionar el medio por el cual un texto en cualquier forma e idioma pueda ser codificado para el uso informático.
El establecimiento de Unicode ha involucrado un ambicioso proyecto para reemplazar los esquemas de codificación de caracteres existentes, muchos de los cuales están muy limitados en tamaño y son incompatibles con entornos multilingües. Unicode se ha vuelto el más extenso y completo esquema de codificación de caracteres, siendo el más dominante en la internacionalización y adaptación local del software informático. El estándar ha sido implementado en un número considerable de tecnologías recientes, que incluyen XML, Java y sistemas operativos modernos.




                                 Presentación sobre los Niveles de Codificación