您的位置:首页 > 编程语言 > PHP开发

FTP 之 ASCII & BINARY 数据传输模式

2011-08-25 23:55 337 查看
FTP有两种传输模式:BINARY和ASCII

BINARY模式

复制时保留文件的位序,逐位拷贝原始文件而不管内容——即使对目的机器操作系统来说该文件是没意义的。

ASCII模式

复制时候会进行调整,主要体现为对不同操作系统的回车/换行/结束符等进行转译。

比如,回车符号在Unix下是\n(0A),Windows下是\r\n(0D0A),Mac下是\r(0D)。当在一个Windows操作系统上用ASCII方式从Unix服务器上下载文件时——无论是文本文件还是二进制文件——都会进行检测和转换:每检测到一个0A,则认为是回车符号,自动插入0D形成Windows下的回车符。显然,如果下载的是文本文件,这种转换是很有用的——我们能在Windows下看到分行后的文本,否则我们看到的是中间夹杂着小黑方块的不换行的一堆文字;然而如果下载的是二进制文件(比如exe或rar),这种转换无异于画蛇添足,破坏了整个文件。

因此,如果服务器和客户端的OS不相同,对于ASCII文件(文本文件)采用ASCII模式下载,对于非文本文件采用BINARY模式下载;如果两端OS相同,两种方式具有同样效果(-_-MS用户太多了,so我们平时都不用注意这些...)。

有些经常游走在两个OS之间的人员采取的习惯做法是:将在Windows下编辑的文件转换成Unix模式(譬如使用UltraEdit),而FTP默认用BINARY模式传输。

==============================

【参考链接】

ftp binary & ascii区别,来源

百度百科:FTP
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: