Как я могу конвертировать изображения, сохраненные как ASCII, в двоичный файл? - PullRequest
0 голосов
/ 19 марта 2012

Я использовал ftp-get для загрузки изображений с сервера.Но случайно я использовал режим FTP_ASCII, поэтому у меня проблема.Изображения не могут быть прочитаны, произошла ошибка.

У меня нет возможности загружать изображения сноваКто-нибудь знает, как преобразовать эти файлы в двоичную форму, или как восстановить эти файлы?

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Не существует гарантированного способа восстановления файлов из-за характера работы режима ASCII по сравнению с двоичным режимом.

Режим FTP ASCII предназначен для преобразования концов строк в соответствующий тип между исходной и целевой операционными системами. Наиболее распространенное преобразование, которое здесь выполняется, - \n (0x0a) становится \r\n (0x0d0a) и наоборот при передаче между * nix и Windows.

Допустим, мы переносим некоторые изображения с сервера Linux на компьютер с Windows и случайно используем режим ASCII. FTP-клиент ищет любые последовательности \n во входящих данных и преобразует их в \r\n в данных, которые он сохраняет на диск. Это означает, что где-нибудь в двоичных данных есть 0x0a, оно становится 0x0d0a в новых данных. Но не преобразует существующий \r\n в \r\r\n - это останется без изменений. Нет проблем, вы можете подумать, я просто конвертирую все 0x0d0a обратно в 0x0a и файл будет восстановлен. Но подождите ... если существующие последовательности \r\n не были преобразованы, то они будут преобразованы неправильно в этом новом проходе преобразования.

Суть в том, что ваши данные безвозвратно повреждены. Единственный 100% гарантированный способ вернуть правильные данные - это снова скопировать их с сервера в двоичном режиме.

0 голосов
/ 21 сентября 2015

Как отмечают другие, данные повреждены и потенциально не подлежат восстановлению.

Однако 0x0D 0x0A не является особенно распространенной последовательностью байтов в большинстве двоичных форматов файлов [необходима цитата!], Поэтому стоит попробовать заменить их, чтобы увидеть, исправляет ли файл.

Утилита fixgz делает именно это. Несмотря на название, оно не имеет ничего общего с файлами .gzip и может использоваться с любым файлом.

Удачи!

...