
У меня есть исполняемые файлы unix вместе с приложением mac OS X, которые я перенес на свой FTP-сервер. Когда я загружаю эти файлы после их загрузки, исполняемые файлы unix загружаются как документы TextEdit. Аналогично с приложением, при загрузке оно говорит: «Приложение MyApp не может быть открыто». Я полагаю, это происходит потому, что при загрузке приложения оно загружает исполняемый файл unix в каталог MyApp/Contents/MacOS/Myapp как текстовый документ. Поэтому я предполагаю, что проблема та же, что и в обеих моих проблемах. Как это можно исправить? Также я хотел бы иметь тот же самый настраиваемый значок, с которым я загрузил файл. Примечание: контрольная сумма для исходного файла и загруженного файла с ftp-сервера одинакова.
решение1
Краткий обзор:
Это нормально, если вы загружаете в режиме 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....