Дополнительно
Разница между типами перевода строки CR LF, LF и CR?
Я'хотел бы узнать разницу (с примерами, если возможно) между типами перевода строки CR LF (Windows), LF (Unix) и CR (Macintosh).
667
9
CR и LF - управляющие символы, соответственно кодируемые
0x0D
(13 десятичных) и0x0A
(10 десятичных).Они используются для обозначения переноса строки в текстовом файле. Как вы указали, Windows использует два символа последовательности CR LF; Unix использует только LF, а старая MacOS (доOSX MacIntosh) использует CR.
Апокрифическая историческая перспектива:.
Как указывает Питер, CR = возврат каретки и LF = подача строки, два выражения уходят корнями в старые печатные машинки / TTY. LF перемещала бумагу вверх (но сохраняла горизонтальное положение), а CR возвращала "каретку" назад, так что следующий набранный символ оказывался в самой левой позиции на бумаге (но на той же строке). CR+LF делала и то, и другое, т.е. готовилась к набору новой строки. Со временем физическая семантика этих кодов стала неприменима, а поскольку память и место на дискете были на высоте, некоторые разработчики ОС решили использовать только один из символов, они просто не очень хорошо взаимодействовали друг с другом ;-)
Большинство современных текстовых редакторов и текстово-ориентированных приложений предлагают опции/настройки и т.д., которые позволяют автоматически определять соглашение о конце строки в файле и отображать его соответствующим образом.
Это хорошее резюме я нашел:
Возврат каретки (CR) - символ (
0x0D
,\Р
) перемещает курсор в начало строки без продвижения на следующую строку. Этот символ используется в качестве символа новой строки в Commodore и ранние операционные системы Макинтош (ОС-9 и ранее).Перевода строки (LF) - символ (
0x0A
,\п
) перемещает курсор на следующую строку без возвращения к началу линии. Этот символ используется в качестве символа новой строки в системах семейства Unix (Линукс, Mac OSX и т. д.)Конца строки (EOL) последовательность (
0x0D 0x0A
,\р\н
) фактически двух ASCII символов, комбинации из символов CR и LF. Она перемещает курсор вниз на следующую строку и в начале этой строки. Этот символ используется в качестве символа новой строки в большинстве других non-Unix операционных систем, включая Microsoft Windows, с ОС Symbian и другие.Источник
На самом деле, это просто о том, какие байты хранятся в файле.
CR
- это байткод для возврата каретки (со времен печатных машинок), аLF
- аналогично, для перевода строки. Это просто относится к байтам, которые помещаются в качестве маркеров конца строки.Больше информации, как всегда, на wikipedia.
Поскольку там's нет ответа с указанием всего этого, резюмировал кратко:
Возврата каретки (МАК предварительно на OSX)
Линии подачи (для Linux, Mac и OSX с)
Возврата каретки и перевода строки (окна)
Если вы видите код ASCII в странном формате, они просто число 13 и 10 в различные системы счисления/база, обычно с основанием 8 (восьмеричная) и 16 (шестнадцатеричное представление).
http://www.bluesock.org/~willg/dev/ascii.html
Джефф Этвуд имеет недавний пост в блоге об этом: великие строки раскол
Вот суть от Википедии:
Пр - ASCII-код 13
ЛФ - ASCII-код 10.
Теоретически ЧР возвращает курсор в первую позицию (слева). Если для одной строки перемещение курсора на одну строку вниз. Это как в старые времена вы контролировали принтеров и текстовом режиме монитора. Эти символы обычно используется для обозначения конца строки в текстовых файлах. Различных операционных систем, используемых различными конвенциями. Как вы указали Windows использует СГ/комбинация ЛФ пока предварительно на OSX Маков использовать только CR и так далее.
Вот подробности.
Печальное состояние "рекорда сепараторы" или "разделители строки" это наследие темных веков вычислительной техники.
Теперь, мы примем за аксиому, что все, что мы хотим представлять тем или иным образом структурированных данных и соответствует различным абстракциям, которые определяют линии, файлы, протоколы, сообщения, разметки, независимо от.
Но давным-давно это было'т совершенно верно. Встроенные приложения знаки контроля и устройства обработки. Мозг-мертв систем, что требует как CR и LF, просто не было абстракцией для записи сепараторы или разделители строки. ЧР был необходим для того, чтобы получить телетайпу или видео-дисплей, чтобы вернуться к колонке и НЧ (сегодня, НЛ же кодекса) необходимо, чтобы получить его, чтобы перейти к следующей строке. Я думаю, идея делать что-то другое, чем сброс исходные данные для устройства слишком сложна.
Unix и Mac фактически указано абстракция для конец строки, представьте, что. К сожалению, в них указаны разные. (В Unix, кхм, пришел первым.) И естественно, они использовали код управления, который уже был на "Закрыть" на С. О. П.
Поскольку почти все наши операционные программного обеспечения сегодня, является потомком семейства Unix, Mac или МС рабочая ЕО, мы застряли с конца строки путаницы.
НЛ, полученные из ebcdic НЛ = х'15' что было бы логично сравнить эти символы не экранируются х'в формате ASCII odoa... это становится очевидным, когда physcally перемещение данных с мэйнфреймов на сч. Coloquially (как только тайные люди используют кодировку ebcdic) НЛ была приравнена с CR или LF или символы не экранируются