чтение файла, хранящегося в хранилище или памяти - PullRequest
0 голосов
/ 26 октября 2018

Все сохраняется как 0 1 в цифровом, двоичном или другом формате

Таким образом, когда мы пытаемся открыть исполнительный файл с помощью шестнадцатеричного редактора, он может показать все случайные символы ASCII, которые будут созданы на основе 7,0 0 битов, которые случайным образом создали этот (любой) файл, потому что он равен 0 1 в память, в памяти.

Так почему же он показывает странный символ, не являющийся символом ASCII?

Шестнадцатеричный ридер не просто разбирает 7 бит на 7 бит или 8 бит? он читает метаданные в файле, а затем читает на основании этого?

1 Ответ

0 голосов
/ 27 октября 2018

Ваш шестнадцатеричный редактор выбирает декодировать байты не как ASCII, а как некоторую другую кодировку символов.

Вы правы, что набор символов ASCII имеет 128 кодовых точек, а кодировка символов ASCII кодирует их в отдельные байты в диапазоне от 0 до 127. Поскольку байты в произвольном файле могут варьироваться от 0 до 255, а набор символов ASCIIне используется для текстовых файлов, декодирование, так как ASCII не будет раскрывать столько информации о потенциальном тексте, сколько более вероятная кодировка символов и даст информацию только о половине значений двоичных файлов.

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

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

Если вы не нашли, какая кодировка символов используется вашим шестнадцатеричным редактором, вы можете проверить его, создав файл со значениями байтов от 0 до 255, посмотреть, что он отображает, и сопоставить его со многими, многими возможности .Это может быть тот, который ваша операционная система использует для «по умолчанию».В Windows cmd, перейдите chcp;В терминале Linux зайдите locale.

...