8-битный текст
Исторически для кодирования текстовых файлов применялись 7-битный набор символов ASCII, а также 8-битные EBCDIC и различные расширения ASCII. В 8-битных кодовых страницах общепринято использовать в первой половине кодовой таблицы символы, соответствующие ASCII.
Преимуществом 8-битного представления текста является программная простота и независимость от проблем порядка байтов или длины машинного слова на разных платформах.
Недостаток — большое количество различных стандартов, из-за этого проблема несовместимости.
Unicode в текстовых файлах
Применение Unicode в текстовых файлах, хотя в основном решает «проблему кодировок» и стандартизирует употребление управляющих символов, но создаёт свои проблемы. В большинстве современных систем неделимой единицей информации в потоке данных является байт (8 бит), которых для кодирования одного символа из Юникода требуется несколько. В качестве решения применяются несовместимые между собой системы UTF-8 и две версии UTF-16 (UTF-16LE и UTF-16BE с противоположным порядком байтов). Иногда в начало файла добавляют специальный символ-маркер (U+FEFF), позволяющий распознать формат однозначно. UTF-8 имеет преимущество обратной совместимости с ASCII, однако программная обработка текста в UTF-8 усложняется непостоянным размером символа. Также тексты в Юникоде отличаются существенно большей избыточностью, нежели 8-битные.
Управляющие символы
Различные операционные системы придерживаются своего представления перевода строки и конца файла.
В UNIX перевод строки состоит из одного символа LF (0x0A), в Mac OS — из символа CR (0x0D), а в DOS и Microsoft Windows перевод строки кодируется последовательностью двух символов: CR и LF.
В DOS и Microsoft Windows конец файла кодируется символом 0x1A, а в UNIX символ конца файла не употребляется.
Помимо названных, в текстовых файлах применяются такие символы как табуляция (0×09) и перевод страницы (0x0C).
