Comprenez pourquoi les accents s'affichent parfois de travers et ce que cachent les fins de ligne invisibles.
Ouvrir cette leçon dans KodokonUne 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.
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 chaudDeuxiè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.
Le texte affiche :
Bonjour
Salut
Ce que contient reellement le fichier :
macOS / Linux (LF) Bonjour\nSalut
Windows (CRLF) Bonjour\r\nSaluté s'affiche sous la forme é ?