2

我编写了一个 FTP 插件(使用 python 的 ftplib),我想知道确定它是否应该对给定文件使用二进制或 ASCII 传输方法的最佳方法是什么。换句话说,“自动”传输模式。

当我收到关于双行的问题报告时,我开始研究这个问题,谷歌搜索结果表明二进制模式应该是负责任的 [1][2]。

它可能正在使用应该是二进制或 ascii 的白名单或黑名单扩展,但它可能不存在,当然还有一个问题(wl x bl,bxa)然后使用哪种方法。这听起来不够扎实(不完善的列表,缺乏扩展)。

-> 问题:对于给定的文件,选择二进制或 ascii 传输模式的可靠方法是什么?(如果有的话...)
谢谢

[1] http://www.seo-creative.co.uk/tutorials/ftp-client-giving-you-double-line-breaks/
[2] http://www.chami.com/html-kit/支持/docs/pages/h000114.html

4

1 回答 1

1

首先,您需要检查文件中识别 UTF16 或 UTF8的BOM 标记。如果它们存在,则该文件有 99.9% 的可能性是文本文件。

接下来,您可以扫描文件并检查它是否包含代码小于 32 而不是 9、10 和 13(TAB、LF、CR)的字符。如果文件中没有此类字符,则该文件可能是文本。但是这里不能保证或者用户可以明确地请求以二进制模式传输文件。

于 2012-08-13T17:32:37.060 回答