我有 unix 可执行文件以及已传输到 FTP 服务器的 mac OS X 应用程序。当我上传这些文件后再下载它们时,unix 可执行文件会下载为 TextEdit 文档。应用程序也是如此,下载时会显示“无法打开应用程序 MyApp”。我认为这是因为下载应用程序时会将目录 MyApp/Contents/MacOS/Myapp 中的 unix 可执行文件下载为文本文档。因此,我认为我遇到的两个问题都是相同的。如何解决。此外,我还希望使用与上传文件时相同的自定义图标。注意:原始文件和从 ftp 服务器下载的文件的校验和相同。
答案1
总结:
在 ASCII 模式下下载时,这是正常现象。切换到二进制下载
背景:
回到传说中的那个年代,当时我们的电脑上只有英语,没有口音、trema 或其他有趣的字符,而且当记忆力还很差的时候,我们使用 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....