Codificación de caracteres

La codificación de caracteres es el método que permite convertir un carácter de un lenguaje natural en un símbolo de otro sistema de representación, como un número o una secuencia de pulsos eléctricos en un sistema electrónico, aplicando normas o reglas de codificación.

Por ejemplo: Código morse

youtube>0Ndt0TA19bQ

¿Por qué es necesario codificar caracteres?

No siempre el medio de almacenamiento o de transmisión permite que la información se envíe o guarde tal cual es, esto nos obliga a tener que adaptar la información al medio.

En el caso de las computadoras sólo entienden números por lo que buscamos representar los caracteres como números. Ejemplos: EBCDIC, ASCII, UTF-8, UTF-16, UTF-32, entre otros.

Tipos de codificación

Código 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.

Tipos de caracteres:

Caracteres de control

Caracteres imprimibles

Código Extendido

A medida que la tecnología informática se difundió a lo largo del mundo, se desarrollaron diferentes estándares y las empresas desarrollaron variaciones del código ASCII para facilitar la escritura de lenguas diferentes al inglés.

Así surge el código ASCII extendido que utiliza 8 bits para poder representar más caracteres.

Unicode

Fue diseñado poder representar textos de numerosos idiomas y reemplazar los esquemas de codificación de caracteres ya existentes, por las limitaciones de tamaño que estos tenían.

Define tres formas de codificación bajo el nombre UTF (Unicode transformation format): UTF-8, UTF-16 y UTF-32

UTF-8

Ventajas:

Permite codificar cualquier carácter Unicode.

Es compatible con US-ASCII, la codificación del repertorio de 7 bits es directa.

UTF-8 ahorrará espacio de almacenamiento para caracteres comunes

Desventajas:

Utiliza símbolos de longitud variable; eso significa que diferentes caracteres pueden codificarse con distinto número de bytes.

Los caracteres ideográficos usan 3 bytes en UTF-8, pero sólo 2 en UTF-16. Así, los textos chinos, japoneses o coreanos ocupan más espacio cuando se representan en UTF-8

UTF-8 ofrece peor rendimiento que UTF-16 y UTF-32 en cuanto a coste de computación,​ por ejemplo en operaciones de ordenación.

Comparación

UTF-8 optimiza el uso del espacio sacrificando el rendimiento del procesador ya que debe trabajar mas para determinar la longitud de cada símbolo. UTF-32 optimiza el rendimiento del procesador sacrificando el uso del espacio en memoria/disco.

Representación de una cadena en memoria

Existen dos formas de representar una cadena en memoría:

Diferentes tipos de saltos de linea CRLF (\r\n) VS LF (\n)

youtube>4i1MqlpIzIk

Volver

()

— Fernando Velcic