Je voudrais connaître la différence (avec des exemples si possible) entre les types de saut de ligne CR LF (Windows), LF (Unix) et CR (Macintosh).
line-breaks
eozzy
la source
la source
\n
est généralement représenté par un saut de ligne, mais ce n'est pas nécessairement un saut de ligne.\r
et\n
sont des abstractions utilisées dans certains langages de programmation. La fermeture de cette question passe sous silence les différences fondamentales entre les questions et perpétue la désinformation.\n
ne signifie pas la même chose dans tous les langages de programmation.Réponses:
Il s'agit vraiment de savoir quels octets sont stockés dans un fichier.
CR
est un bytecode pour le retour chariot (de l'époque des machines à écrire) et deLF
même pour le saut de ligne. Il fait simplement référence aux octets placés comme marqueurs de fin de ligne.Beaucoup plus d'informations, comme toujours, sur wikipedia .
la source
CR
s'agit du caractère d'échappement\r
etLF
du caractère d'échappement\n
. En outre, Wikipedia: Newline .CR and LF
c'est juste la fin de la ligne et la nouvelle ligne selon ce lien , est-ce correct?CR et LF sont des caractères de contrôle, respectivement codés
0x0D
(13 décimales) et0x0A
(10 décimales).Ils sont utilisés pour marquer un saut de ligne dans un fichier texte. Comme vous l'avez indiqué, Windows utilise deux caractères la séquence CR LF; Unix utilise uniquement LF et l'ancien MacOS (MacIntosh pré-OSX) utilisait CR.
Une perspective historique apocryphe:
Comme indiqué par Peter , CR = Carriage Return et LF = Line Feed , deux expressions ont leurs racines dans les anciennes machines à écrire / ATS. LF a déplacé le papier vers le haut (mais a gardé la position horizontale identique) et CR a ramené le "chariot" afin que le caractère tapé suivant soit à la position la plus à gauche sur le papier (mais sur la même ligne). CR + LF faisait les deux, c'est-à-dire se préparait à taper une nouvelle ligne. Au fil du temps, la sémantique physique des codes n'était pas applicable, et comme la mémoire et l'espace sur disquette étaient rares, certains concepteurs de systèmes d'exploitation ont décidé de n'utiliser qu'un seul des caractères, ils ne communiquaient tout simplement pas très bien entre eux; -)
La plupart des éditeurs de texte modernes et des applications orientées texte offrent des options / paramètres, etc. qui permettent la détection automatique de la convention de fin de ligne du fichier et de l'afficher en conséquence.
la source
CR and LF
c'est juste la fin de la ligne et la nouvelle ligne selon ce lien , est-ce correct?CR+LF
) peuvent s'afficher avec des doubles retours à la ligne sur d'autres systèmes. Vraisemblablement, l'éditeur qui affiche le texte prend en charge à la fois le retour chariot et le saut de ligne en tant que délimiteurs de nouvelle ligne et, en tant que tel, peut créer 2 lignes là où 1 était prévu. Donc, même s'il estCR+LF
peut-être le plus compatible, je ne pense pas que ce soit sans problème.Voici un bon résumé que j'ai trouvé:
Le caractère Retour chariot (CR) (
0x0D
,\r
) déplace le curseur au début de la ligne sans passer à la ligne suivante. Ce caractère est utilisé comme nouveau caractère de ligne dans les systèmes d'exploitation Commodore et Early Macintosh (OS-9 et versions antérieures).Le caractère de saut de ligne (LF) (
0x0A
,\n
) déplace le curseur vers le bas sur la ligne suivante sans revenir au début de la ligne. Ce caractère est utilisé comme nouveau caractère de ligne dans les systèmes basés sur UNIX (Linux, Mac OSX, etc.)La séquence de fin de ligne (EOL) (
0x0D 0x0A
,\r\n
) est en fait deux caractères ASCII, une combinaison des caractères CR et LF. Il déplace le curseur vers le bas jusqu'à la ligne suivante et au début de cette ligne. Ce caractère est utilisé comme un nouveau caractère de ligne dans la plupart des autres systèmes d'exploitation non Unix, y compris Microsoft Windows, Symbian OS et autres.La source
la source
Puisqu'il n'y a pas de réponse le disant simplement, résumée succinctement:
Retour chariot (MAC pré-OSX)
Saut de ligne (Linux, MAC OSX)
Retour chariot et saut de ligne (Windows)
Si vous voyez du code ASCII dans un format étrange, ce sont simplement les nombres 13 et 10 dans un radix / base différent, généralement la base 8 (octal) ou la base 16 (hexadécimal).
http://www.bluesock.org/~willg/dev/ascii.html
la source
Jeff Atwood a récemment publié un blog à ce sujet: The Great Newline Schism
Voici l'essence de Wikipedia :
la source
<CR><CR><LF>
- alors bien sûr, j'ai expérimenté avec une seule<CR>
. J'ai envoyé<CR><LF>A
après une longue ligne, et vous pouviez entendre l'A
impression avant le retour complet du chariot.<CR><CR>
et en tapant le nombre correct d'espaces, puis en réimprimant le même mot: une forme primitive de gras.CR - code ASCII 13
LF - code ASCII 10.
Théoriquement, CR ramène le curseur à la première position (à gauche). LF alimente une ligne en déplaçant le curseur d'une ligne vers le bas. C'est ainsi que vous contrôliez autrefois les imprimantes et les moniteurs en mode texte. Ces caractères sont généralement utilisés pour marquer la fin des lignes dans les fichiers texte. Différents systèmes d'exploitation ont utilisé différentes conventions. Comme vous l'avez souligné, Windows utilise la combinaison CR / LF tandis que les Mac pré-OSX utilisent uniquement CR et ainsi de suite.
la source
Voici les détails .
la source
Le triste état des «séparateurs d'enregistrements» ou des «terminateurs de ligne» est un héritage des âges sombres de l'informatique.
Maintenant, nous tenons pour acquis que tout ce que nous voulons représenter est en quelque sorte des données structurées et conformes à diverses abstractions qui définissent les lignes, les fichiers, les protocoles, les messages, le balisage, peu importe.
Mais il était une fois ce n'était pas tout à fait vrai. Applications caractères de contrôle intégrés et traitement spécifique à l'appareil. Les systèmes cérébraux qui nécessitaient à la fois CR et LF n'avaient tout simplement aucune abstraction pour les séparateurs d'enregistrement ou les terminateurs de ligne. Le CR était nécessaire pour que le télétype ou l'affichage vidéo revienne à la première colonne et le LF (aujourd'hui, NL, même code) était nécessaire pour qu'il passe à la ligne suivante. Je suppose que l'idée de faire autre chose que de vider les données brutes sur l'appareil était trop complexe.
Unix et Mac ont en fait spécifié une abstraction pour la fin de ligne, imaginez cela. Malheureusement, ils en ont spécifié différents. (Unix, ahem, est venu en premier.) Et naturellement, ils ont utilisé un code de contrôle qui était déjà "proche" de SOP
Étant donné que presque tous nos logiciels d'exploitation sont aujourd'hui des descendants d'Unix, Mac ou MS fonctionnant SW, nous sommes coincés avec la confusion de fin de ligne.
la source
NL dérivé de EBCDIC NL = x'15 'qui serait logiquement comparable à CRLF x'odoa ascii ... cela devient évident lorsque l'on déplace physiquement les données des unités centrales vers les moyennes fréquences. Familièrement (comme seules les personnes obscures utilisent ebcdic) NL a été assimilé à CR ou LF ou CRLF
la source