关于文本格式传输和二进制格式传输

在Unix和Windows系统之间用ftp传输数据时:

一、传输的是文本数据,则必须用文本格式,否则从Windows到Unix传输时,Windows下的每一个换行为"回车+换行"(0x0D0A),Unix在接收的时候,都将自动滤去其中的"回车",也就是转换为Unix下的单单一个"换行"(0x0A)符。反之,当Windows接收Unix操作系统传输过来的数据时,将自动在每一个"换行"(0x0A)符前添加一个"回车"(0x0D)符。此时如果采用二进制格式传输,操作系统之间将不做相应转换,而Windows和Unix对换行符的解析操作不同,Unix会把Windows传过来的0x0D当做单独的字符解析,这样将出现莫名其妙的乱码,同样,Windows也会把Unix传过来的0x0A当做一个字符而不是解析为换行符(Windows)下的换行符为0x0D0A。
二、如果传输的是二进制数据,则必须用二进制格式。否则如果采用文本格式,如上所述,Windows会在接收到的文件里0x0A前自动添加0x0D,而Unix将自动把所有0x0A前的0x0D删掉,呵呵,想一想,你好不容易编译过的可执行文件传过去之后会变成什么样子?基本不可能是你在本地机器上所看到的样子。


上述只适用于Windows和Unix系统之间传输,同种类型操作系统之间传输不存在转换问题。

欢迎访问:乐园www.ly8.co

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章