当使用FTPS连接传输文件时,“二进制模式传输”和“ASCII模式传输”之间有什么区别?

时间:2008-09-17 09:33:18

标签: ftp sap file-transfer edi ftps

我正在使用 FTPS 连接发送文本文件 [此文件将包含EDI(电子数据交换)信息] 到邮箱INOVIS.I已配置系统打开FTPS连接并使用PUT命令我将文件写入FTP上的文件夹服务器。 问题是:我应该使用什么模式的文件传输?如何在模式之间切换?

此外,哪种模式是通过FTPS连接传输文件时使用的“最佳实践”。 如果有人可以为我提供一个小的ftp脚本,那将会有所帮助。

7 个答案:

答案 0 :(得分:4)

这个问题的许多其他答案都是几乎正确到完全错误信息的集合。

ASCII模式表示该文件应在线路上转换为规范文本格式。除此之外,这意味着:

  • NVT-ASCII字符集。即使原始文件是其他字符集,例如ASCII,EBCDIC或UTF-8。从技术上讲,这不允许使用第8位设置的字符,但大多数实现都不会强制执行此操作。
  • CRLF行结尾。

EBCDIC模式意味着一组类似的规则,但线路上的数据应该是EBCDIC。

LOCAL模式允许发送每字节8位以外的数据。

IMAGE(或BINARY)模式意味着应该发送数据而不做任何更改。用户应确保目标系统一旦到达就能理解数据。

除此之外,这意味着如果其中一个系统不使用基于ASCII的字符集,则建议使用BINARY模式发送文本数据。

答案 1 :(得分:1)

ASCII模式更改unix和DOS格式之间的换行符。 \ n到\ r \ n和反之。

答案 2 :(得分:1)

实际上,ASCII / BINARY与第8位无关。这是翻译行结尾的惯例。

当你在Windows机器上与Unix FTP服务器通信时(FTPS或FTP - 无关紧要 - 协议是相同的),服务器将用&lt替换任何< CR>< LF> -Combination ; LF>在存储文件之前,如果从unix服务器获取文件,则反向进行翻译。

ASCII模式背后的想法是将行结尾转换为目标平台的相应结尾。

由于今天的世界似乎正在​​融合到unix惯例(< LF>),并且几乎所有今天的编辑器(除了记事本)都能轻松处理Unix-Line-Endings,因此ASCII模式的时代确实如此编号,我会建议始终使用BINARY传输模式。

无论如何,在转移中期改变数据的前景有点可怕。

答案 3 :(得分:0)

ASCII模式还使最终用户在不同平台上共享文本文件更加简单。他们不必担心默认行结束(例如cr / lf与lf),因为ASCII模式会动态地为它们进行转换。

对于大多数文件类型,您总是希望使用BINARY模式。

答案 4 :(得分:0)

ACSII模式基于服务器和客户端平台(CR / LF与LF)在UNIX和Windows格式之间转换文本文件,而Binary则不然。当然,如果您在ASCII模式下传输几乎任何非文本的东西,它可能会因此而被损坏。

答案 5 :(得分:-1)

如果您想要精确复制数据使用二进制模式 - 使用ascii模式将假设数据是7位文本(字符0-127)并截断此范围之外的任何数据。日期回到神秘的7位网络日,ascii模式可以节省您的时间。

在我们生活的全球化环境中 - 找到非ascii字符非常常见,例如外语,货币符号等 - 您应该始终使用BINARY模式。

答案 6 :(得分:-3)

对于FTP协议,ASCII传输模式会将每个字符的第8位视为无关紧要,并将其用于错误检查。对于二进制传输模式,您的数据将按原样发送。请注意,以ASCII模式发送二进制数据(几乎)总是会导致数据损坏。但是,只要发送和接收系统以相同的方式使用第8位(在现代系统中第8位应保持为0以防止与扩展的ASCII字符冲突),以二进制模式传输ASCII数据将起作用。