Kodokon kodokon.com

Caracteres acentuados, UTF-8 y finales de línea

Entiende por qué las tildes salen a veces ilegibles y qué esconden esos finales de línea invisibles.

7 min · 3 preguntas

Abrir esta lección en Kodokon

Una máquina no tiene ni idea de qué es la letra A. Lo único que maneja son números. Así que, para escribir texto, hubo que ponerse de acuerdo en una tabla de correspondencias: el número 65 significa A, el 66 significa B, y así sucesivamente. Esa convención se llama codificación. La más antigua, ASCII, es de los años sesenta y solo cubría el alfabeto inglés: ni é, ni ñ, ni ü, ni un solo carácter chino.

Después, cada país inventó su propia tabla, y llegó el caos: un archivo español abierto con la tabla rusa salía convertido en un galimatías. La solución moderna se llama Unicode, un catálogo único que asigna un número a todos los caracteres de todos los idiomas, emojis incluidos. Y UTF-8 es la forma estándar de escribir esos números dentro de un archivo. Hoy la regla es sencilla y no admite excepciones: guarda siempre tus archivos en UTF-8.

TEXT
Escrito en UTF-8, leído como UTF-8    ->  Canción de mañana (tildes correctas)
Escrito en UTF-8, leído como Latin-1  ->  Canción de mañana
Escrito en Latin-1, leído como UTF-8  ->  Canci?n de ma?ana
El mismo archivo leído con la tabla equivocada se convierte en un galimatías.

Segunda cosa invisible: el final de línea. Cuando pulsas Intro, en el archivo no se dibuja ninguna línea. Lo que se añaden son uno o dos caracteres invisibles y, también aquí, los sistemas nunca se pusieron de acuerdo. macOS y Linux usan un solo carácter, el LF (line feed, avance de línea), que se escribe \n. Windows usa dos seguidos, el CRLF (carriage return y luego line feed), que se escribe \r\n. Viene directamente de las máquinas de escribir, donde hacían falta dos movimientos distintos: devolver el carro y luego bajar una línea.

TEXT
Lo que ves en pantalla:

Hola
Qué tal

Lo que contiene realmente el archivo:

macOS / Linux (LF)     Hola\nQué tal
Windows (CRLF)         Hola\r\nQué tal
Dos archivos idénticos en pantalla, dos contenidos distintos en realidad.

Prueba de conocimientos

Comprueba que has retenido los puntos clave de esta lección.

  1. ¿Qué está pasando cuando é aparece como é?
    • El archivo se está leyendo con una codificación distinta de aquella con la que se escribió
    • El archivo está dañado y hay que volver a crearlo
    • El sistema ha eliminado la tilde
    • Falta la fuente
  2. ¿Qué final de línea ha usado Windows históricamente?
    • CRLF
    • LF
    • CR a secas
  3. ¿Qué ajustes conviene elegir en tu editor de código?
    • UTF-8 para la codificación y LF para los finales de línea
    • ASCII para la codificación y CRLF para los finales de línea
    • Latin-1 para la codificación y CR para los finales de línea