La question du saut de ligne dans les différents systèmes en usage
Le code ASCII distingue avec précision deux opérations qui étaient
effectivement différentes sur une machine à écrire, même si elles
étaient le plus souvent exécutées conjointement :
- le passage à la ligne suivante, sans mouvement du chariot, par
rotation du cylindre porte-papier (déc. 010 hex.
0A = LF)
LF = Line Feed
- le retour du chariot, recalé à gauche sans changement de ligne (déc. 013 hex. 0D = CR)
CR = Carriage Return
Dans la logique de l'écriture séquentielle des caractères sur un écran,
cette distinction devient irréaliste : pratiquement elle n'a plus lieu
d'être. Pour exprimer le seul mouvement utile, à savoir passer au début
de la ligne suivante, on se trouve donc devant deux caractères
possibles, avec en plus la combinaison issue de la pratique ancienne
"retour-chariot + saut de ligne", soit trois possibilités.
Les hasards de l'histoire on fait que les trois principales familles de
systèmes d'exploitation en activité aient choisi chacune une solution
différente !
- Le monde Unix (Linux) a choisi LF : un seul octet 0A
- Le monde Mac a choisi CR : un seul octet 0D
- Le monde Microsoft a choisi CR+LF : deux octets consécutifs 0D 0A
Il s'ensuit qu'un fichier venant d'un Macintosh sera lu sous Windows par un outil comme NotePad sur une seule ligne,
et que le même fichier transporté sans précautions sur un système Unix a toutes les chances d'y provoquer des erreurs,
ou encore de faire apparaître des "^M" là où on attendait des sauts de ligne (cf. Structure du code ASCII).
Les logiciels des transfert (ftp notamment) sont censés faire le nécessaire, mais il vaut mieux prendre garde !
Certains éditeurs de texte permettent à l'utilisateur de choisir la représentation des sauts de ligne,
au même titre que le codage des caractères : regardez attentivement si votre éditeur favori vous offre cette possibilité...