关于sap:使用FTPS连接传输文件时,“二进制模式taransfer”和“ ASCII模式传输”有什么区别?

关于sap:使用FTPS连接传输文件时,“二进制模式taransfer”和“ ASCII模式传输”有什么区别?

when using a FTPS connection to transfer a file, what is the difference between a 'Binary mode taransfer' and 'ASCII mode transfer'?

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

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


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

ASCII模式意味着该文件应在线上转换为规范文本形式。除其他外,这意味着:

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

EBCDIC模式意味着一组类似的规则,不同之处在于线路上的数据应位于EBCDIC中。

本机模式允许发送的数据的大小不是每个字节8位。

IMAGE(或BINARY)模式意味着应该发送数据而不进行任何更改。用户有责任确保目标系统在数据到达后就能理解它们。

除其他外,这意味着如果所涉及的系统之一不使用基于ASCII的字符集,则使用BINARY模式发送文本数据的建议将失败。


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

当您在与Unix FTP服务器(FTPS或FTP-没关系-协议相同)的Windows计算机上时,服务器将在存储以下内容之前用替换任何 -Combination。文件,因此反向翻译,以防您从UNIX服务器上获取文件。

ASCII模式的思想是将行尾转换为目标平台的相应尾端。

由于当今世界似乎正在??收敛于unix约定(),并且由于当今几乎所有的编辑器(记事本除外)都可以轻松处理Unix-Line-Endings,因此ASCII模式的日子确实已被编号,我会绝对建议始终使用BINARY传输模式。

无论如何,在传输中途更改数据的前景有些令人恐惧。


ASCII模式在UNIX和DOS格式之间更改换行符。 \ n到\ r \ n,反之亦然。


ACSII模式根据服务器和客户端平台(CR / LF与LF)在UNIX和Windows格式之间转换文本文件,而Binary则不会。当然,如果您以ASCII模式传输几乎所有非文本的内容,则可能由于该原因而损坏。


ASCII模式还使最终用户可以更轻松地在不同平台上共享文本文件。他们将不必担心默认的行尾(例如cr / lf而不是lf),因为ASCII模式将即时为他们进行转换。

对于大多数文件类型,您始终会希望使用BINARY模式。


如果要精确复制数据,请使用二进制模式-使用ascii模式将假定数据为7位文本(字符0-127),并截断该范围之外的所有数据。可以回溯到奥秘的7位联网天,在这种情况下,ASCII模式可以节省您的时间。

在我们所居住的全球化环境中-这样通常会发现非ascii字符,例如外语,货币符号等。-您应始终使用BINARY模式。


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


推荐阅读