EOL
Одна из самых забавных (и нелепых) причин преобразования текстовых форматов
связана с тем, что Unix и его многочисленные последователи (Mac, DOS, Win)
по-разному отмечают переход к новой строке в тексте.
Исторически, в эпоху электромеханических пишущих машинок и телетайпов,
прокручивание валика подачи бумаги (LF - Line Feed) и возврат печатающей
каретки в исходную позицию (CR - Carriage Return) были двумя существенно
различными операциями. Таблица ASCII включает оба управляющих кода для
принтера (наряду с горизонтальной - HT и вертикальной - VT табуляцией).
Для компьютерной обработки текста два (в сущности, идентичных) маркера
избыточны. И в то время, как DOS тупо требует обоих - <CR><LF>, Unix
использует только <LF>, а Mac - только <CR>. Некоторые глючные программы
издают последовательность <LF><CR>, приводящие к ступору некоторые глючные
редакторы, а сами EOL-конверторы - обширный раздел на любой файловой помойке.
Может показаться, что замена EOL не является табличной заменой (по крайней
мере, односимвольной). Но это не так: коды <CR><LF> никогда не используются в
тексте (относятся к диапазону служебных символов) и, вместе или порознь,
всегда обозначают именно переход к новой строке. При замене одиночного символа
парой (или наоборот), происходит именно односимвольная замена - с изменением
размера кода, этот символ представляющего.
© Gazlan 2011 * gazlan@yandex.ru
|