Kodokon kodokon.com

Accents, UTF-8 et fins de ligne

Comprenez pourquoi les accents s'affichent parfois de travers et ce que cachent les fins de ligne invisibles.

7 min · 3 questions

Ouvrir cette leçon dans Kodokon

Une machine ne sait pas ce qu'est la lettre A. Elle ne manipule que des nombres. Pour écrire du texte, il a donc fallu se mettre d'accord sur une table de correspondance : le nombre 65 vaut A, le 66 vaut B, et ainsi de suite. Cette convention s'appelle un encodage. La plus ancienne, l'ASCII, date des années 1960 et ne couvrait que l'alphabet anglais : ni é, ni ç, ni ü, ni le moindre caractère chinois.

Chaque pays a alors inventé sa propre table, et le chaos s'est installé : un fichier français ouvert avec la table russe affichait du charabia. La solution moderne s'appelle Unicode, un catalogue unique qui attribue un numéro à tous les caractères de toutes les langues, emoji compris. Et UTF-8 est la façon standard d'écrire ces numéros dans un fichier. Aujourd'hui, la règle est simple et sans exception : enregistrez toujours vos fichiers en UTF-8.

TEXT
Fichier ecrit en UTF-8, relu en UTF-8    ->  Cafe tres chaud (accents corrects)
Fichier ecrit en UTF-8, relu en Latin-1  ->  Café très chaud
Fichier ecrit en Latin-1, relu en UTF-8  ->  Caf? tr?s chaud
Le même fichier lu avec la mauvaise table donne du charabia.

Deuxième invisible : la fin de ligne. Quand vous appuyez sur Entrée, aucun trait ne s'inscrit dans le fichier. Un ou deux caractères invisibles y sont ajoutés, et là encore, les systèmes ne se sont jamais mis d'accord. macOS et Linux utilisent un seul caractère, le LF (line feed, saut de ligne), noté \n. Windows en utilise deux à la suite, le CRLF (carriage return puis line feed), noté \r\n. C'est un héritage direct des machines à écrire, où il fallait deux gestes : ramener le chariot, puis avancer d'une ligne.

TEXT
Le texte affiche :

Bonjour
Salut

Ce que contient reellement le fichier :

macOS / Linux (LF)     Bonjour\nSalut
Windows (CRLF)         Bonjour\r\nSalut
Deux fichiers identiques à l'écran, deux contenus différents en réalité.

Quiz de validation

Vérifiez que vous avez bien retenu les points clés de cette leçon.

  1. Que se passe-t-il quand é s'affiche sous la forme é ?
    • Le fichier est lu avec un encodage différent de celui d'écriture
    • Le fichier est corrompu et doit être recréé
    • L'accent a été supprimé par le système
    • La police de caractères est manquante
  2. Quelle fin de ligne Windows utilise-t-il historiquement ?
    • CRLF
    • LF
    • CR seul
  3. Quels réglages faut-il privilégier dans son éditeur de code ?
    • UTF-8 pour l'encodage et LF pour les fins de ligne
    • ASCII pour l'encodage et CRLF pour les fins de ligne
    • Latin-1 pour l'encodage et CR pour les fins de ligne