Текстовые файлы очень часто несовместимы в различных операционных системах. Но почему так? А все потому, что разные операционные системы используют разные маркеры для обозначения конца строки. Этот не всеми известен ньюанс может сбить с толку, когда нужно передать файлы из одной операционной системы в другую.

Оригинальная операционная система Macintosh использовала возврат каретки для обозначения конца строки. Возврат каретки для обозначения конца строки легко понятен для тех, кто когда-либо использовал печатную машинку. Та печатная машинка имела большую клавишу, которая называлась возврат каретки, которая автоматически при достижении конца строки перекидывала печатную головку на следующую строку. Но времена изменились, и Macintosh тоже не стоит на месте. Следущие ОС Macintosh  Mac OS X используют перевод строки вместо возврата каретки для обозначения конца строки.

Возврат каретки часто называют CR (заглавные буквы от слов Carriage Return). Перевод строки же называют LF (заглавные буквы от слов Line Feed). На старых Маках, каждая линия имеет маркер CR в конце строки, что обозначает конец строки. На новых маках маркер LF в конце строки означает то же самое.

перевод строки LF

В операционных системах Linux конец строки обозначает маркер LF, то есть перевод строки. Каждая строка должна заканчиваться LF. Другими словами Линукс использует то же маркер LF, что и  современные ОС от Макинтош. Так что они есть совместимы с позиции окончания строк в текстовых файлах.

Операционная система Windows в вопросе конца строки в текстовых файлах отлична от двух предыдущих. Там придумали свой оригинальный способ. В виндовсе строка заканчивается сочетанием сразу двух маркеров – после CR следует LF.
Обозначается это так: CRLF в конце строки.

перевод строки CRLF

Под конец добавим, что маркеры CR и LF в таблице символов ASCII имеют коды 13 и 10 соответственно.

Назад