在什么情况下应该使用ASCII通过FTP传输文件? (我不是问ascii xfer和bin xfer之间的区别)

| 我了解FTP上ASCII模式和二进制模式之间的区别,但是我不明白的是,为什么甚至需要ASCII模式?这是否只是遗留的东西,它通过消除最高有效位来节省时间,从而使传输的整体速度提高了1/8?还是有一些我不知道的隐藏用途? 我遇到了许多问题,因为在不同操作系统之间传输文本时,我会忘记将模式切换为bin。我不明白为什么\ bin不仅是所有内容的默认值,尤其是在当今互联网速度更快的情况下。 知道吗,弗恩?     
已邀请:
        存在ASCII模式,因此,当您将文本文件上传到远程系统时,无需知道该系统的行终止符或字符集约定是什么,便可以获得正确的答案。当通过FTP传输文本文件而不是通过电子邮件传输文本文件时,这一点更为重要。 要解决您的实际问题,请检查您的FTP客户端和服务器的文档,以了解默认情况下是否存在设置ASCII模式的方法。通常,这就像每次连接时都会发送一些FTP命令的\“ profile \”一样简单。 解决您的哲学问题:FTP是一种已有40年历史的协议,在历史包g中占有相当的份额。有一天,您将很高兴自己所依赖的某些协议在很早以前就已经标准化,并且仍然可以访问一些旧数据。     
        我赞成投票,从ftp服务器中消除ascii模式。任何EOL转换都可以通过使用文件的应用程序来完成,而如今许多应用程序仍然可以理解这两种EOL类型。至少,我希望服务器默认切换为使用二进制文件,并且仅在需要时才使用ascii。     
        实际使用ASCII模式的一种情况是将PHP或Perl或类似脚本从Windows开发机上载到Unix服务器。使用二进制模式将需要对行结束序列进行单独转换,而使用ASCII模式则“自动”执行转换。 更新:还有另外一种情况-在使用EBCDIC编码的大型机之间传输数据时,ASCII模式告诉服务器在编码之间进行转换。     
        这是使用二进制FTP连接引起的问题的实际示例。在php中,有两种类型的注释:
// a single line comment like this
/* a block comment like this */
块注释具有开始和结束。但是单行注释仅在行尾结束。 如果您使用二进制连接上传带有单行注释的php文件,则该php一旦碰到单行注释,它将立即停止运行。它无法将行的结尾识别为注释的结尾,因此它可以有效注释掉PHP脚本的其余部分。 但是,如果您在ASCII模式下使用FTP,它将正确读取该行的结尾并按预期运行您的php代码。     

要回复问题请先登录注册