Περισσότερα
Διαφορά μεταξύ των τύπων διακοπής γραμμής CR LF, LF και CR;
Θα ήθελα να μάθω τη διαφορά (με παραδείγματα αν είναι δυνατόν) μεταξύ των τύπων αλλαγής γραμμής CR LF (Windows), LF (Unix) και CR (Macintosh).
667
3
Οι CR και LF είναι χαρακτήρες ελέγχου, αντίστοιχα κωδικοποιημένοι ως "0x0D" (13 δεκαδικά) και "0x0A" (10 δεκαδικά).
Χρησιμοποιούνται για να σηματοδοτούν τη διακοπή γραμμής σε ένα αρχείο κειμένου. Όπως αναφέρατε, τα Windows χρησιμοποιούν δύο χαρακτήρες την ακολουθία CR LF- το Unix χρησιμοποιεί μόνο LF και το παλιό MacOS ( προ-OSX MacIntosh) χρησιμοποιούσε CR.
Μια απόκρυφη ιστορική προοπτική:
Όπως ανέφερε ο Peter, CR = Carriage Return και LF = Line Feed, δύο εκφράσεις που έχουν τις ρίζες τους στις παλιές γραφομηχανές / TTY. Η LF μετακινούσε το χαρτί προς τα πάνω (αλλά διατηρούσε την ίδια οριζόντια θέση) και η CR έφερνε πίσω το "καροτσάκι" έτσι ώστε ο επόμενος χαρακτήρας που πληκτρολογείται να βρίσκεται στην πιο αριστερή θέση του χαρτιού (αλλά στην ίδια γραμμή). Το CR+LF έκανε και τα δύο, δηλαδή προετοίμαζε την πληκτρολόγηση μιας νέας γραμμής. Με την πάροδο του χρόνου η φυσική σημασιολογία των κωδικών δεν ήταν εφαρμόσιμη, και καθώς η μνήμη και ο χώρος της δισκέτας ήταν περιορισμένος, ορισμένοι σχεδιαστές λειτουργικών συστημάτων αποφάσισαν να χρησιμοποιούν μόνο έναν από τους χαρακτήρες, απλά δεν επικοινωνούσαν πολύ καλά μεταξύ τους ;-)
Οι περισσότεροι σύγχρονοι επεξεργαστές κειμένου και εφαρμογές προσανατολισμένες στο κείμενο προσφέρουν επιλογές/ρυθμίσεις κ.λπ. που επιτρέπουν την αυτόματη ανίχνευση της σύμβασης τέλους γραμμής του αρχείου'και την εμφάνισή της αναλόγως.
Στην πραγματικότητα πρόκειται απλώς για τα bytes που αποθηκεύονται σε ένα αρχείο. Το
CR
είναι ένας bytecode για το carriage return (από την εποχή των γραφομηχανών) και τοLF
ομοίως, για το line feed. Αναφέρεται απλώς στα bytes που τοποθετούνται ως δείκτες τέλους γραμμής.Πολύ περισσότερες πληροφορίες, όπως πάντα, στη wikipedia.
Ακολουθούν οι λεπτομέρειες.