Не существует гарантированного способа восстановления файлов из-за характера работы режима 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% гарантированный способ вернуть правильные данные - это снова скопировать их с сервера в двоичном режиме.