Tabla de Contenidos
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
¿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
Diferentes tipos de saltos de linea CRLF (\r\n) VS LF (\n)
you see this when javscript or css is not working correct