FTP传输模式binary和ASCII的区别

| 暂无评论 | 暂无引用通告

-->     使用Net::FTP从FTP服务器上下载文件,发现部分文件下载后大小有出入,可能是使用ASCII传输方式造成的。

查一下FTP的两种传输模式的区别:

ASCII模式和BINARY模式的区别是回车换行的处理,binary模式不对数据进行任何处理,asci模式将回车换行转换为本机的回车字符,比如
Unix下是\n,Windows下是\r\n,Mac下是\r

ascii模式下会转换文件
不能说是不同系统对回车换行解释不同
而是不同的系统有不同的行结束符
unix系统下行结束符是一个字节,即十六进制的0A
而ms的系统是两个字节,即十六进制的0D0A
所以当你用ascii方式从unix的ftp  server下载文件时(不管是二进制或者文本文件),每检测到一个

字节是0A,就会自动插入一个0D,所以如果你的文件是二进制文件比如可执行文件、压缩包什么的,就肯

定不能用了。如果你的文件就是unix下的文本文件,你用ascii模式是正确的,要是误用了binary模式,

你在windows上看这个文件是没有换行的,里面是一个个的黑方块。
一般来说,我们最好都用binary方式,这样可以保证不出错。如果有文本格式转换的问题,即unix格式

的文本和dos格式的文本之间的转换,

所以,可以采用这样的习惯:
所有的FTP传输都采用binary方式,但是在windows下面编辑的文件需要事先转换成Unix模式,这个可以使用
UltraEdit的conversion功能,也可以在UltraEdit下面另存为Unix Terminators-LF的格式。

原文见:
http://blog.chinaunix.net/u1/56521/showart_1183437.html
百度百科:FTP
http://baike.baidu.com/view/369.htm

暂无引用通告

发送引用通告网址: http://supersun.info/mt/mt-tb.cgi/928
如果您想引用这篇日记到您的Blog,请复制上面的链接,放置到您发表文章时的相应界面中。

发表评论

最新资源

  • IMG_1437.JPG
  • line.png
  • bar.png
  • perl_calander.jpg

关于此日记

此日记由 supersun 发表于 2009年3月31日 16:30

此Blog上的上一篇日记inotify监控文件的更改

此Blog上的下一篇日记awstats按日报表日历界面

首页归档页可以看到最新的日记和所有日记。