我编写了一个 FTP 插件(使用 python 的 ftplib),我想知道确定给定文件是否应该使用二进制或 ASCII 传输方法的最佳方法是什么。换句话说,“自动”传输模式。
当我收到有关双线的问题报告时,我开始研究这个问题,并且谷歌搜索发现二进制模式应该负责[1][2]。
它可能使用应该是二进制或 ascii 的白名单或黑名单扩展,但它可能不存在,当然还有一个问题是使用哪种方法 (wl x bl,b x a)。这听起来不够可靠(不完美的列表,缺乏扩展)。
-> 问题:对于给定的文件,选择二进制或 ASCII 传输模式的可靠方法是什么? (如果有的话……)
谢谢
[1] http://www.seo-creative.co.uk/tutorials/ftp-client-giving-you-double-line-breaks/ http://www.seo-creative.co.uk/tutorials/ftp-client-giving-you-double-line-breaks/
[2] http://www.chami.com/html-kit/support/docs/pages/h000114.html http://www.chami.com/html-kit/support/docs/pages/h000114.html
首先,您需要检查文件BOM标记 http://en.wikipedia.org/wiki/Byte_order_mark识别 UTF16 或 UTF8。如果它们存在,则该文件有 99.9% 的可能性是文本文件。
接下来,您可以扫描该文件并检查它是否包含代码小于 32 且不包含 9、10 和 13(TAB、LF、CR)的字符。如果文件中没有这样的字符,则该文件是probably一段文字。但这里不能保证用户可以明确请求以二进制模式传输文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)