Двоичные и текстовые данные не разделены: это просто данные . Это зависит от интерпретации, которая делает их одним или другим. Если вы откроете двоичные данные (например, файл изображения) в текстовом редакторе, большая часть этого не будет иметь смысла, поскольку она не соответствует выбранной вами интерпретации (как текст).
То, что вы называете текстом, является подмножеством возможного содержимого файла: Данные, которые в данном наборе символов преобразуются в читаемые символы.
Например, в ASCII вы можете видеть, что из 128 «разрешенных» значений только около половины составляют буквы и цифры, 30 - знаки пунктуации, а остальные - управляющие символы . Последняя группа просто мало используется в текстовых файлах, и у них нет действительно хорошего текстового представления. Некоторые из них - символы Tab и Newline , где текстовые редакторы уже должны проявить творческий подход к их отображению.
Некоторые текстовые редакторы имеют опции для явного отображения пробелов. Затем они будут фактически нарисованы как символы, в дополнение к их обычному поведению форматирования (которое также является просто интерпретацией этих символов).
Чистый ASCII интерпретирует только 128 значений. Байты, используемые для хранения этой информации, имеют по 256 возможных значений, поэтому половина возможных значений не допускается в ASCII. Например, они используются в специфических для региона наборах символов, таких как Latin 1, но в ASCII они не определены. Они не имеют полезного представления в средстве просмотра текста, которое может обрабатывать только ASCII.
Двоичные данные обычно не интерпретируются как текст. Таким образом, в этих файлах обычно встречаются все возможные значения байтов . Все остальное было бы расточительно (и это причина, по которой вы можете очень хорошо сжимать текст). Форматы графических файлов сложны, и вы обычно не просматриваете их как текст, поэтому они не должны быть читаемыми.
Поскольку не существует единой интерпретации данных (набора символов), которая отображает все возможные значения на читаемые символы, и поскольку это не имеет большого смысла в любом случае (так как это не читаемый текст), основные части отображаются как бессмысленные.
Шестнадцатеричный редактор выбирает другое представление для данных: каждый байт отображается в виде двух шестнадцатеричных цифр. Это просто другое представление, и одно с легко читаемым набором символов: все 256 возможных значений байтов могут быть представлены в виде двух шестнадцатеричных цифр.
Поскольку существует простое отображение двоичных данных в шестнадцатеричное и наоборот (4 двоичных цифры в / из одной шестнадцатеричной цифры), а двоичные данные содержат очень мало информации на одну цифру, шестнадцатеричное обычно является предпочтительным способом для людей читать двоичные данные, если нет особых причины предпочесть другое представление.
Некоторые текстовые редакторы могут иметь режим шестнадцатеричного редактора и некоторую эвристику, которая пытается определить, является ли файл текстовым или двоичным, и автоматически выбирает тот или иной режим. Но это может быть трудно понять правильно, и это не конкретное свойство файла, которое говорит, является ли он одним или другим.
Некоторые FTP-клиенты просят указать, какие окончания файлов используются для текстовых данных . Эти программы будут затем изменить содержимое файла в соответствии с ОС машины вы подключены, как Windows использует другую линию конечной последовательность символов ( CR/LF
) , чем Linux и Unix (включая Mac OS X; LF
).