У меня есть исполняемые файлы Unix вместе с приложением Mac OS X, которые я перенес на мой FTP-сервер. Когда я загружаю эти файлы после загрузки, исполняемые файлы Unix загружаются как документы TextEdit. Как и в случае с приложением, при загрузке оно говорит: "Приложение MyApp не может быть открыто". Я полагаю, что это потому, что когда он загружает приложение, он загружает исполняемый файл Unix из каталога MyApp/Contents/MacOS/Myapp в виде текстового документа. Поэтому я предполагаю, что проблема одинакова для обеих проблем, которые у меня возникают. Как это можно исправить. Также я хотел бы иметь тот же пользовательский значок, с которым я загрузил файл. Примечание. Контрольная сумма для исходного файла и загруженного файла с ftp-сервера совпадает.
1 ответ
TLDR:
Это нормально, когда вы загружаете в режиме ASCII. Переключиться на бинарную загрузку
Фон:
В прежние времена, когда у нас был только английский на компьютерах и без акцента, тремы или других интересных символов, а когда запоминание было еще очень скудным, мы использовали ASCII для представления букв и цифр. ASCSII содержит 127 записей.
127 записей соответствуют 7 битам, а текущий обычный байт равен 8 битам.* 1
Если вы отправляете все 8 битов, то вы тратите (тогда очень дорогую и ограниченную) полосу пропускания * 2, поэтому 8 бит теряются. Это работало нормально для текстовых файлов. Если вы передали двоичные (не_ASCII) данные, вам нужно было явно указать FTP, чтобы он загружал все 8 бит, переключаясь в двоичный режим.
* 1: Помимо полезных вещей, таких как преобразование текста из удаленного формата в локальный. Например, от мэйнфрейма EBDIC до ASCII, изменение конца строки между и т.д.
* 2: Пример пропускной способности:
Режим ASCII:
AAAAAAAB BBBBBBCC CCCCCDDD DDDDEEEE EEEFFFFF FFFGGGGG GGHHHHHH H...
^^^^^^
Savings
Бинарный режим:
AAAAAAA- BBBBBBB- CCCCCCC- DDDDDDD- EEEEEEE- FFFFFFF- GGGGGGG- H....