Обычный текст
Эта статья нуждается в дополнительных цитатах для проверки . ( август 2012 г. ) |
В вычислительной технике простой текст — это общий термин для данных (например, содержимого файла), которые представляют собой только символы читаемого материала, но не его графическое представление или другие объекты ( числа с плавающей запятой , изображения и т. д.). Он также может включать ограниченное количество символов «пробелов», которые влияют на простое расположение текста, например пробелы, разрывы строк или символы табуляции. Обычный текст отличается от форматированного текста , в который включена информация о стиле; из структурированного текста, где идентифицируются структурные части документа, такие как абзацы, разделы и т.п.; и из двоичных файлов , в которых некоторые части должны интерпретироваться как двоичные объекты (закодированные целые числа, действительные числа, изображения и т. д.).
Этот термин иногда используется довольно широко, обозначая файлы, которые содержат только «читаемый» контент (или просто файлы, в которых нет ничего, что не предпочитает говорящий). Например, это может исключить любые указания на шрифты или макет (например, разметку, уценку или даже вкладки); такие символы, как фигурные кавычки, неразрывные пробелы, мягкие дефисы, длинные тире и/или лигатуры; или другие вещи.
В принципе, обычный текст может быть в любой кодировке , но иногда этот термин подразумевает ASCII . Поскольку кодировки на основе Unicode , такие как UTF-8 и UTF-16, становятся все более распространенными, их использование может сокращаться.
Обычный текст также иногда используется только для исключения «двоичных» файлов: тех, в которых хотя бы некоторые части файла не могут быть правильно интерпретированы с помощью действующей кодировки символов. Например, файл или строка, состоящая из слова «привет» (в любой кодировке), за которым следуют 4 байта, представляющие двоичное целое число, не являющееся символом, является двоичным файлом. Преобразование обычного текстового файла в другую кодировку символов не меняет смысла текста, если используется правильная кодировка символов. Однако преобразование двоичного файла в другой формат может изменить интерпретацию нетекстовых данных.
Обычный текст и форматированный текст
[ редактировать ]Согласно стандарту Unicode: [1]
- «Обычный текст — это чистая последовательность кодов символов; поэтому простой незакодированный текст представляет собой последовательность кодов символов Юникода.
- Напротив, стилизованный текст , также известный как форматированный текст , представляет собой любое текстовое представление, содержащее простой текст плюс дополнительную информацию, такую как идентификатор языка, размер шрифта, цвет, гипертекстовые ссылки и т. д.
- SGML , RTF , HTML , XML и TeX — это примеры форматированного текста, полностью представленного в виде потоков обычного текста, в котором данные в виде простого текста перемежаются последовательностями символов, которые представляют дополнительные структуры данных».
Однако, согласно другим определениям, файлы, содержащие разметку или другие метаданные, обычно считаются простым текстом, если разметка также находится в непосредственно удобочитаемой форме (как в HTML, XML и т. д.). Таким образом, такие представления, как SGML, RTF, HTML, XML, вики-разметка и TeX, а также почти все файлы исходного кода языков программирования считаются обычным текстом. Конкретное содержимое не имеет значения для того, является ли файл обычным текстом. Например, файл SVG может содержать рисунки или даже растровую графику, но по-прежнему представляет собой обычный текст.
Использование простого текста, а не двоичных файлов, позволяет файлам гораздо лучше выживать «в дикой природе», отчасти благодаря тому, что они в значительной степени невосприимчивы к несовместимости компьютерной архитектуры. Например, всех проблем порядка байтов можно избежать (при таких кодировках, как UCS-2 , а не UTF-8, порядок байтов имеет значение, но равномерно для каждого символа, а не для потенциально неизвестных его подмножеств).
Использование
[ редактировать ]Целью использования обычного текста сегодня является, прежде всего, независимость от программ, которым требуется своя особая кодировка, форматирование или формат файла . Обычные текстовые файлы можно открывать, читать и редактировать с помощью распространенных текстовых редакторов и утилит.
Интерфейс командной строки позволяет людям давать команды в виде обычного текста и получать ответ, обычно также в виде обычного текста.
Многие другие компьютерные программы также способны обрабатывать или создавать простой текст, например, бесчисленные программы в DOS , Windows , классической Mac OS , Unix и ей подобных; а также веб-браузеры (некоторые браузеры, такие как Lynx и браузер линейного режима, отображают только простой текст) и другие программы для чтения электронного текста .
Обычные текстовые файлы практически универсальны в программировании; Файл исходного кода, содержащий инструкции на языке программирования, почти всегда представляет собой обычный текстовый файл. Простой текст также часто используется для файлов конфигурации , которые считываются на наличие сохраненных настроек при запуске программы.
Простой текст используется для большей части электронной почты .
Комментарий обычно содержат только простой текст ( , файл « .txt » или запись TXT без форматирования), предназначенный для чтения людьми.
Лучшим форматом для постоянного хранения знаний является простой текст, а не какой-либо двоичный формат . [2]
Кодирование
[ редактировать ]Кодировки символов
[ редактировать ]До начала 1960-х годов компьютеры в основном использовались для обработки чисел, а не для обработки текста, а память была чрезвычайно дорогой. Компьютеры часто выделяли только 6 бит для каждого символа, допуская только 64 символа — присвоение кодов для AZ, az и 0–9 оставило бы только 2 кода: этого недостаточно. Большинство компьютеров предпочли не поддерживать строчные буквы. Таким образом, ранние текстовые проекты, такие как Роберто Бусы , Index Thomisticus Brown Corpus и другие, были вынуждены прибегать к таким соглашениям, как ввод звездочки перед буквами, которые на самом деле предполагались в верхнем регистре.
Фред Брукс из IBM решительно выступал за переход на 8-битные байты, потому что когда-нибудь люди, возможно, захотят обрабатывать текст, и победил. Хотя IBM использовала EBCDIC , с тех пор большая часть текста стала кодироваться в ASCII , используя значения от 0 до 31 для (непечатаемых) управляющих символов и значения от 32 до 127 для графических символов, таких как буквы, цифры и знаки препинания. Большинство машин хранили символы в 8 битах, а не в 7, игнорируя оставшийся бит или используя его в качестве контрольной суммы .
Почти повсеместное распространение ASCII оказало большую помощь, но не смогло решить международные и лингвистические проблемы. Знак доллара («$») не был так полезен в Англии, а символы с диакритическими знаками, используемые в испанском, французском, немецком, португальском и многих других языках, были совершенно недоступны в ASCII (не говоря уже о символах, используемых в греческом, русском, и большинство восточных языков). Многие люди, компании и страны определяли дополнительные символы по мере необходимости — часто переназначая управляющие символы или используя значения в диапазоне от 128 до 255. Использование значений выше 128 противоречит использованию 8-го бита в качестве контрольной суммы, но использование контрольной суммы постепенно прекратилось. .
Эти дополнительные символы в разных странах кодировались по-разному, что делало текст невозможным для декодирования без выяснения правил составителя. Например, браузер может отображать ¬A вместо ` , если он пытается интерпретировать один набор символов как другой. Международная организация по стандартизации ( ISO ) в конечном итоге разработала несколько кодовых страниц в соответствии с ISO 8859 для поддержки различных языков. Первый из них ( ISO 8859-1 ) также известен как «Latin-1» и охватывает потребности большинства (не всех) европейских языков, в которых используются символы на основе латиницы (недостаточно места, чтобы охватить их все). . Затем ISO 2022 предоставил соглашения для «переключения» между различными наборами символов в середине файла. Многие другие организации разработали их варианты, и в течение многих лет на компьютерах Windows и Macintosh использовались несовместимые варианты.
Ситуация с кодировкой текста становилась все более и более сложной, что привело к усилиям ISO и Консорциума Unicode по разработке единой унифицированной кодировки символов, которая могла бы охватывать все известные (или, по крайней мере, все известные в настоящее время) языки. После некоторого конфликта, [ нужна ссылка ] эти усилия были объединены. В настоящее время Unicode допускает 1 114 112 кодовых значений и присваивает коды, охватывающие почти все современные системы написания текста, а также многие исторические системы, а также для многих нелингвистических символов, таких как печатные дингбаты , математические символы и т. д.
Текст считается обычным текстом независимо от его кодировки. Чтобы правильно понять или обработать его, получатель должен знать (или уметь выяснить), какая кодировка использовалась; однако им не нужно ничего знать об используемой компьютерной архитектуре или о двоичных структурах, определенных какой-либо программой (если таковая имеется), создавшей данные.
Вероятно, наиболее распространенным способом явного указания конкретной кодировки обычного текста является использование типа MIME .Для электронной почты и HTTP тип MIME по умолчанию — « text/plain » — обычный текст без разметки.Другой тип MIME, часто используемый как в электронной почте, так и в HTTP, — это « text/html ; charset=UTF-8» — обычный текст, представленный с использованием кодировки символов UTF-8 с разметкой HTML.Другой распространенный тип MIME — «application/json» — обычный текст, представленный с использованием кодировки символов UTF-8 с разметкой JSON .
Когда документ получен без явного указания кодировки символов, некоторые приложения используют определение кодировки , чтобы попытаться угадать, какая кодировка была использована.
Коды управления
[ редактировать ]ASCII резервирует первые 32 кода (десятичные числа 0–31) для управляющих символов, известных как «набор C0»: коды, изначально предназначенные не для представления печатной информации, а скорее для управления устройствами (такими как принтеры ), использующими ASCII, или для предоставления метаинформации о потоках данных, например, хранящихся на магнитной ленте. Они включают в себя общие символы, такие как символ новой строки и символ табуляции .
В 8-битных наборах символов, таких как Latin-1 и других наборах ISO 8859 , первые 32 символа «старшей половины» (от 128 до 159) также являются управляющими кодами, известными как «набор C1». Они редко используются напрямую; когда они появляются в документах, которые якобы имеют кодировку ISO 8859, их кодовые позиции обычно относятся к символам в этой позиции в проприетарной, специфичной для системы кодировке, такой как Windows-1252 или Mac OS Roman , в которой используются коды вместо этого предоставить дополнительные графические символы.
Юникод определяет дополнительные управляющие символы, в том числе символы переопределения направления двунаправленного текста (используемые для явного обозначения написания справа налево внутри письма слева направо и наоборот) и селекторы вариантов для выбора альтернативных форм иероглифов CJK , эмодзи. и другие персонажи.
См. также
[ редактировать ]- Двоичные данные
- Бинарный файл
- Бинарный протокол
- Исходный код
- Текстовый файл
- Текстовый протокол
- Перенос строк и перенос слов
Ссылки
[ редактировать ]- ^ «Стандарт Юникод, версия 14.0» (PDF) . стр. 18–19.
- ^ Эндрю Хант, Дэвид Томас.« Программист-прагматик ».1999. Глава 14: «Сила простого текста» .п. 73.