Разница между типами перевода строки CR LF, LF и CR?

Я'хотел бы узнать разницу (с примерами, если возможно) между типами перевода строки CR LF (Windows), LF (Unix) и CR (Macintosh).

Комментарии к вопросу (7)

CR и LF - управляющие символы, соответственно кодируемые 0x0D (13 десятичных) и 0x0A (10 десятичных).

Они используются для обозначения переноса строки в текстовом файле. Как вы указали, Windows использует два символа последовательности CR LF; Unix использует только LF, а старая MacOS (доOSX MacIntosh) использует CR.

Апокрифическая историческая перспектива:.

Как указывает Питер, CR = возврат каретки и LF = подача строки, два выражения уходят корнями в старые печатные машинки / TTY. LF перемещала бумагу вверх (но сохраняла горизонтальное положение), а CR возвращала "каретку" назад, так что следующий набранный символ оказывался в самой левой позиции на бумаге (но на той же строке). CR+LF делала и то, и другое, т.е. готовилась к набору новой строки. Со временем физическая семантика этих кодов стала неприменима, а поскольку память и место на дискете были на высоте, некоторые разработчики ОС решили использовать только один из символов, они просто не очень хорошо взаимодействовали друг с другом ;-)

Большинство современных текстовых редакторов и текстово-ориентированных приложений предлагают опции/настройки и т.д., которые позволяют автоматически определять соглашение о конце строки в файле и отображать его соответствующим образом.

Комментарии (4)

Это хорошее резюме я нашел:

Возврат каретки (CR) - символ (0x0D, ) перемещает курсор в начало строки без продвижения на следующую строку. Этот символ используется в качестве символа новой строки в Commodore и ранние операционные системы Макинтош (ОС-9 и ранее).

Перевода строки (LF) - символ (0x0A, \п) перемещает курсор на следующую строку без возвращения к началу линии. Этот символ используется в качестве символа новой строки в системах семейства Unix (Линукс, Mac OSX и т. д.)

Конца строки (EOL) последовательность (0x0D 0x0A, \р\н) фактически двух ASCII символов, комбинации из символов CR и LF. Она перемещает курсор вниз на следующую строку и в начале этой строки. Этот символ используется в качестве символа новой строки в большинстве других non-Unix операционных систем, включая Microsoft Windows, с ОС Symbian и другие.

Источник

Комментарии (2)
Решение

На самом деле, это просто о том, какие байты хранятся в файле. CR - это байткод для возврата каретки (со времен печатных машинок), а LF - аналогично, для перевода строки. Это просто относится к байтам, которые помещаются в качестве маркеров конца строки.

Больше информации, как всегда, на wikipedia.

Комментарии (2)

Поскольку там's нет ответа с указанием всего этого, резюмировал кратко:

Возврата каретки (МАК предварительно на OSX)

  • КЛ
  • ASCII-код 13

Линии подачи (для Linux, Mac и OSX с)

  • Если
  • ASCII-код 10

Возврата каретки и перевода строки (окна)

  • Эти символы не экранируются
  • \р\н
  • ASCII-код 13, а затем код ASCII 10

Если вы видите код ASCII в странном формате, они просто число 13 и 10 в различные системы счисления/база, обычно с основанием 8 (восьмеричная) и 16 (шестнадцатеричное представление).

http://www.bluesock.org/~willg/dev/ascii.html

Комментарии (0)

Джефф Этвуд имеет недавний пост в блоге об этом: великие строки раскол

Вот суть от Википедии:

последовательность символов CR+LF был в общем пользовании на многих ранних компьютерных системах принял телетайпной машины, обычно ASR33, как консоль устройства, потому что эта последовательность была требуется для установки этих принтеров В начале новой строки. На эти системы, текст обычно В составе должны быть совместимы с этими принтеры, поскольку понятие устройства водители скрываются такие аппаратные детали из приложения не хорошо разработка; приложения было поговорить непосредственно телетайп и следовать конвенциям. Разделение из двух функций скрывали > в том, что печатающая головка не может возвращение из крайнего правого в В начало следующей строки в один-символ времени. Вот почему последовательность всегда посылали с ЦР В первом. На самом деле, это часто необходимо , Чтобы отправить лишние символы (лишние CRS или Нудлз, которые игнорируются), чтобы дать голову напечатать время переходить к По левому краю. Даже после телетайпов были заменены компьютерными терминалами С выше скорости передачи данных, многие работают системы по-прежнему поддерживаются автоматическая посылая этих заполнителей для совместимость с более дешевыми терминалами что требуется несколько символов для прокрутки дисплея.

Комментарии (9)

Пр - ASCII-код 13

ЛФ - ASCII-код 10.

Теоретически ЧР возвращает курсор в первую позицию (слева). Если для одной строки перемещение курсора на одну строку вниз. Это как в старые времена вы контролировали принтеров и текстовом режиме монитора. Эти символы обычно используется для обозначения конца строки в текстовых файлах. Различных операционных систем, используемых различными конвенциями. Как вы указали Windows использует СГ/комбинация ЛФ пока предварительно на OSX Маков использовать только CR и так далее.

Комментарии (0)

Системы, основанные на ASCII или совместимый набор символов, используют либо LF (перевод строки, 0x0A, 10 в десятичной системе) или CR (возврат каретки, 0x0D, 13 в десятичной системе) по отдельности, или CR с последующим LF (CR+LF, 0x0D 0x0A); Эти символы основаны на командах принтера: Перевод строки указывает, что одна строка бумага должна подаваться из принтера, а возврат каретки указывает, что принтер каретка должна вернуться в начало текущей строки.

Вот подробности.

Комментарии (0)

Печальное состояние "рекорда сепараторы" или "разделители строки" это наследие темных веков вычислительной техники.

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

Но давным-давно это было'т совершенно верно. Встроенные приложения знаки контроля и устройства обработки. Мозг-мертв систем, что требует как CR и LF, просто не было абстракцией для записи сепараторы или разделители строки. ЧР был необходим для того, чтобы получить телетайпу или видео-дисплей, чтобы вернуться к колонке и НЧ (сегодня, НЛ же кодекса) необходимо, чтобы получить его, чтобы перейти к следующей строке. Я думаю, идея делать что-то другое, чем сброс исходные данные для устройства слишком сложна.

Unix и Mac фактически указано абстракция для конец строки, представьте, что. К сожалению, в них указаны разные. (В Unix, кхм, пришел первым.) И естественно, они использовали код управления, который уже был на "Закрыть" на С. О. П.

Поскольку почти все наши операционные программного обеспечения сегодня, является потомком семейства Unix, Mac или МС рабочая ЕО, мы застряли с конца строки путаницы.

Комментарии (0)

НЛ, полученные из ebcdic НЛ = х'15' что было бы логично сравнить эти символы не экранируются х'в формате ASCII odoa... это становится очевидным, когда physcally перемещение данных с мэйнфреймов на сч. Coloquially (как только тайные люди используют кодировку ebcdic) НЛ была приравнена с CR или LF или символы не экранируются

Комментарии (0)