La codificación de datos es el acuerdo sobre cómo se convierten la información en bytes y de regreso: qué número representa la letra «ñ», cómo se escribe una fecha o cómo se envía una imagen dentro de un correo.
Es como ponerse de acuerdo en el idioma antes de escribir una carta. Si tú escribes en español y el otro lee como si fuera inglés, las letras llegan, pero el mensaje no se entiende.
En términos técnicos
- Es tarea de la capa 6 (Presentación) del modelo OSI: traducir los datos a un formato común para que ambos extremos los interpreten igual. En TCP/IP la hace la aplicación.
- Para el texto: ASCII, la familia ISO-8859 (Latin-1) y, sobre todo, Unicode con UTF-8.
- Para enviar binarios como texto: Base64.
- Para datos estructurados: JSON, XML, Protocol Buffers, ASN.1.
- Para el orden de los bytes en los encabezados de red: big-endian, llamado orden de red.
¿Dónde lo vas a encontrar?
En la cabecera Content-Type: text/html; charset=utf-8 de una página, en los adjuntos de un correo, en las APIs que responden en JSON, en los certificados digitales (ASN.1) y cada vez que un archivo de texto muestra caracteres extraños.