Это может звучать как очень глупый вопрос для всех вас, и на самом деле это так, но я действительно запутался, выясняя точную разницу между данными и текстом.

Я поставлю свои наблюдения, предположим, у нас есть 2 файла, text.txt и data.png . Как вы уже могли догадаться, первый - это простой текстовый файл, который содержит текст, его можно открыть с помощью простого текстового редактора, и его содержимое - это то, что мы называем текстом, верно?

Теперь последняя представляет собой изображение, содержимое которого называется данными, верно? Но, хотя это изображение и когда вы открываете его, оно будет отображать изображение на вашем компьютере, но, если вы измените его расширение на что-то вроде .txt или сказать, если вы откроете его с помощью текстового редактора, такого как блокнот (с кодировка utf-8) мы видим текст, но крайне затенены. Но это по крайней мере доказывает, что файл изображения также содержит текст, тогда что это за данные? где данные? Это текстовые данные? С точки зрения компьютера, как бы я различал текст и данные?

Еще одно наблюдение, которым я хотел бы поделиться, я практиковал стеганографию, и мне удалось добавить некоторый текст в конец файла изображения, и он даже не повредил его! Итак, текст, который я добавил, не был данными?

Спасибо

PS: я не знаю, какой тег выбрать для такого вопроса.

5 ответов5

2

Во-первых, обе формы являются «данными» в некотором смысле, и, если перейти к основам, они обе хранятся абсолютно одинаково на базовом уровне в двоичном формате. Будь то текстовый, числовой, исполняемый, что угодно, все это хранится в двоичном виде, в комбинации 0 и 1, на используемом вами носителе.

Итак, почему то, что вы называете текстом, отображает то, что оно делает?

Весь текст сохраняется снова, как комбинация 0 или 1. Но это само по себе довольно бесполезно для конечного пользователя, который хочет видеть значение, хранящееся на диске. Это где кодирование символов вступает в игру.

Возможно, вы слышали о некоторых других типах кодировки символов, таких как ASCII и UTF. Они используются для сопоставления сохраненного двоичного файла с распознаваемым символом (который затем будет отображаться с использованием определенного шрифта, но это немного выходит за рамки этой области).

Используя ASCII в качестве примера, символы хранятся в 7 битах (где байт состоит из 8 битов), от 0000000 до 1111111. Вы можете увидеть, как каждый персонаж отображается здесь:

С http://www.asciitable.com/

Каждый символ, то есть прописные, строчные, символы и "специальные символы", интерпретируется определенным значением. Используя Hello в качестве примера:

`H` -> Decimal 72 -> Binary 01001000
`e` -> Decimal 101 -> Binary 01100101
`l` -> Decimal 108 -> Binary 01101100
`l` -> Decimal 108 -> Binary 01101100
`o` -> Decimal 111 -> Binary 01101111

Другие карты символов будут использовать все 8 битов или даже более 1 байта для хранения символа, что позволяет хранить большие буквы или несколько алфавитов и больше символов в одном и том же файле с использованием той же кодировки.

Таким образом, мы можем видеть, как двоичный файл теперь может быть преобразован в то, что мы считаем "текстом".

Но что происходит, когда вы открываете файл другого типа, а не текст?

Каждый файл на вашем компьютере, сохраненный в двоичном виде, может быть открыт текстовым редактором, который попытается прочитать файл в виде кодировки. Конечно, то, что отображается, будет абсолютно бессмысленным, поскольку файл не был закодирован для чтения картой символов, а вместо этого выполнен другим способом. Многие байты будут совпадать с символом на карте, которую он использует, что иногда будет означать, что вы видите странный символ, который вы узнаете. Остальные либо не будут отображаться и возвращать нечетный или отсутствующий символ, либо будут соответствовать различным частям карты, которые не имеют смысла декодировать. Там ничто не мешает этому пробовать все же.

Я отредактировал данные для файла PNG, но он все еще открылся и не повредил. Зачем?

Глядя здесь, вы можете увидеть структуру файла PNG. В частности:

Чанки могут появляться в любом порядке, с учетом ограничений, накладываемых на каждый тип чанков. (Одно заметное ограничение заключается в том, что IHDR должен появляться первым, а IEND должен появляться последним; таким образом, блок IEND служит маркером конца файла.) Может появиться несколько фрагментов одного типа, но только если специально разрешено для этого типа.

Этот конкретный тип файла предоставляет маркер конца файла, который сообщит читателю, что данные за пределами этой точки не являются частью самого файла. Таким образом, вы можете добавить данные сверх этого, и это может не вызвать проблем, если читатель правильно обрабатывает файл. Тем не менее, если вы добавите еще один маркер EoF, это может вызвать путаницу.

Следует также отметить, что тип файла состоит из кусков, каждый из которых имеет проверку CRC. Проверка CRC сообщает читателю, допустим ли фрагмент и не был ли он изменен и должен всегда присутствовать. Читатель может быть обучен игнорировать данные, не включающие в себя допустимую комбинацию порций данных и CRC, хотя я подозреваю, что это приведет к ошибке какой-либо формы.


Дальнейшее чтение:

ASCII

Двоичный файл

Кодировка символов

1

Файл изображения не содержит текста (за исключением некоторых метаданных, возможно). Вместо этого вам нужно взглянуть на это с другой стороны: текст - это тоже данные. Текст - это особый способ декодирования двоичных 1 и 0. Средство просмотра изображений будет использовать еще один декодер для понимания необработанных данных.

Если вы попытаетесь принудительно декодировать текст в файле, который не содержит текста, результаты будут искажены, как вы уже узнали.

В зависимости от формата файла конечные данные мусора могут игнорироваться. Однако это не стеганография, потому что дополнительные данные не скрыты. Стеганография должна была бы слегка изменить некоторые пиксели для кодирования данных.

0

Данные: Означает факты, собранные вместе для некоторой ссылки.

Текст: просто комбинация букв или символов.

0

В информационных технологиях текст - это читаемая человеком последовательность символов и слов, которые они образуют, которые могут быть закодированы в машиночитаемые форматы, такие как ASCII или UTF-8. Текст обычно отличается от не символьно-закодированных данных, таких как графические изображения в виде растровых изображений и программного кода, который иногда называют "двоичным" (но на самом деле он находится в своем собственном машиночитаемом формате).

Источник: что такое текст?

0

На самом деле это не данные изображения, которое вы видите, а кодирование изображения, которое теперь похоже на текст. Это не должно быть, просто посмотрите в JPG, например. По сути, разница текстового и бинарного (вы называете это данными) представления информации заключается в том, что вы используете не все возможные байтовые значения (8-байтовые "символы"), а их подмножество, которое вы обычно пишете с помощью , Другими словами, в текстах используется меньше символов. В результате текстоподобные файлы должны быть больше, чем двоичные файлы с одинаковым информационным содержанием, для которого одинаковое количество информации требует большего количества экземпляров этого меньшего количества символов.

Я рекомендую установить некоторую программу просмотра hexa (Total Commander и Far Manager оба способны) и просто просматривать файлы, и это скоро прояснится.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .