【问题】
用Filezilla去从一个ftp站点下载下来一个文件,然后用notepad++去编辑,结果显示有问题,每一行都多了一个换行,所以很是难看:
而对于同样内容的一个文件,从别处获得的,打开后,显示就是正常的:
Filezilla的版本信息:
FileZilla Client Version: 3.5.3 Build information: Linked against: Operating system: |
【解决过程】
1. 直觉上看来,好像是回车换行的问题。
但是对于两个文件,用BeyondCompare去比较的话,结果又是一样的:
然后就是很无语,两个一样的文件,为何一处打开显示正常,另一个不正常。
2.后来才知道,原来BeyondCompare 3之后的版本,对于比较文本文件,是做的不够好的,没了那个设置二进制选项的设置了,搞得只是比较文本内容,所以才有上面的比较结果是无区别的。
然后后来通过比较两个文件的真实字节数,才看出来两个不一样的。
正常的文件是9388字节的:
异常的文件是9679字节的:
然后在Filezilla中,也发现了对应的问题,即ftp服务器上的文件大小,和下载到本地的不一样:
但是对于本地下载下来的,不一样大小的文件,再重新上传上去,在提示是否覆盖的时候,却看到两者文件大小又是一样的了,都是9388字节了:
3.去网上找,关于filezilla 下载后,文件大小变化,结果没找到有效帖子,只是在这里看到有人提示:
http://bbs.sjtu.edu.cn/bbstcon,board,software,reid,1309485691.html
说是ascii mode的问题,所以就去Filezilla的设置选项中找了一下,发现对于传输默认,是有对应的设置选项的。
对于文件传输的默认传输类型,默认是设置为自动的:
然后自己去改为二进制模式:
然后再去下载文件,就是正常的了,服务器上文件大小,和下载下来的文件大小是一致的了。也就终于搞定了这个问题。
【总结】
Filezilla 3.5.3,对于文件传输,即在本地和服务器之间的文件的上传和下载,默认传输类型,是自动,对于文本类文件,可能是检测到服务器是Linux,而本地PC是Windows的原因,其会多此一举地,去在文件传输过程中,去添加一些回车和换行,导致下载下来的文件大小有变化,对应的文本文件在Notepad++下面打开,也由于多了回车和换行而导致显示出来有问题。
解决办法是,Filezilla –> 编辑 –> 设置 –> 传输 –> 文件类型 –> 默认传输类型,把“自动”改为“二进制”,即可。这样文件传输过程中,就不会多此一举地去改变文件的任何的内容了。