分页: 1 / 1

ftp中ascii与二进制传输有什么不同呀?

发表于 : 2010-03-02 16:18
新office菜鸟
请问:
ftp中ascii与二进制传输有什么不同呀?

Re: ftp中ascii与二进制传输有什么不同呀?

发表于 : 2010-03-02 18:22
mayi
不同的文件类型,需要用合适的传输格式。
这是因为不同的系统对TXT文件格式会有差别,如果用二进制,两边文件会完全一致,但ASCII会作合适转换。
典型的差异如UNIX系统下,TXT文件只会使用换行符,而WIN系统下,还会有个回车符。使用ASCII,就会自动加上或删除回车符。
如果用BIN,则不会。
如果你不确认时,建议都用二进制。反正都会有转换工具的。

Re: ftp中ascii与二进制传输有什么不同呀?

发表于 : 2010-03-02 18:29
delectate
mayi 写了:不同的文件类型,需要用合适的传输格式。
这是因为不同的系统对TXT文件格式会有差别,如果用二进制,两边文件会完全一致,但ASCII会作合适转换。
典型的差异如UNIX系统下,TXT文件只会使用换行符,而WIN系统下,还会有个回车符。使用ASCII,就会自动加上或删除回车符。
如果用BIN,则不会。
如果你不确认时,建议都用二进制。反正都会有转换工具的。
learn it

binary is best way to transport files?

Re: ftp中ascii与二进制传输有什么不同呀?

发表于 : 2010-03-02 18:35
冲浪板
二进制文件若用ascii码传,有可能被截断;
ascii码文件用二进制传,有可能多传了无用的数据,当然你读文件不会出问题。

Re: ftp中ascii与二进制传输有什么不同呀?

发表于 : 2010-03-02 18:36
BigSnake.NET
ascii的话会做换行符转换

Re: ftp中ascii与二进制传输有什么不同呀?

发表于 : 2010-03-02 19:57
新office菜鸟
mayi 写了:不同的文件类型,需要用合适的传输格式。
这是因为不同的系统对TXT文件格式会有差别,如果用二进制,两边文件会完全一致,但ASCII会作合适转换。
典型的差异如UNIX系统下,TXT文件只会使用换行符,而WIN系统下,还会有个回车符。使用ASCII,就会自动加上或删除回车符。
如果用BIN,则不会。
如果你不确认时,建议都用二进制。反正都会有转换工具的。
谢谢各位,
不过还不是很明白,
比如:A要传送一个文件给B,
这里的传输模式由A来决定还是由B来决定的呀?
什么是ASCII文件,什么是二进制文件??
ASCII是否指字符,而二进制是否指0101组合的?
“典型的差异如UNIX系统下,TXT文件只会使用换行符,而WIN系统下,还会有个回车符。使用ASCII,就会自动加上或删除回车符。
如果用BIN,则不会”这句话是什么意思?
是否可以这样理解:
A如果是unix系统,B如果是win系统,那么如果它们之间使用ascii方式传送(这个方式是由谁来决定的呀??)
那么文件是从B传送到A的,那么里面的回车符到A后就不见了。如果从A到B呢?情况又会是怎样呀?谢谢。

Re: ftp中ascii与二进制传输有什么不同呀?

发表于 : 2010-03-03 13:38
poet
这是针对服务器和你的客户端来说的。ftp 协议由于历史的原因,设定了缺省值为 asc 模式,也就是说如果你没有进行任何设置,将使用asc模式传输,这导致了缺省情况下 bin 文件可能无法正常传输。

如果服务器是 Windows,客户端也是 Windows,那么对于文本你怎么设置都无所谓。对于bin你必须设置为bin。——总的来说,全部设置为 bin 即可。

如果服务器是 Linux,客户端也是 Linux,那么你怎么设置都无所谓,因为Linux下处理bin和asc是一样的,总的来说,无须任何设置。

如果服务器是 Linux,客户端是 Windows。那么对于文本可以任意设置,但对于bin必须设置为bin。总的来说,全部设置为bin即可。

如果服务器是 Windows,客户端是 Linux。那么文本必须设置为文本,bin必须设置为bin。通常不可以混用。


一句话概括就是,如果你的服务器跟客户端都是linux,那么你无须理睬这个设置。否则,需要进行相应的设置,最好设置为 bin。——但当服务器是windows时全设bin还不行,还需要正常设置文本文件的类型为 asc。——这隐含着告诉你使用linux作为服务器可以简化很多事情。

Re: ftp中ascii与二进制传输有什么不同呀?

发表于 : 2010-03-03 13:48
poet
新office菜鸟 写了: 什么是ASCII文件,什么是二进制文件??
最初定义这个是基于 Unix 系统的,Windows 的出现把这个问题复杂化了,因为在 Windows 中并没有明确的定义可以判定一个文件是属于 ascii 文件还是属于二进制文件。

对于 Unix 系统来说,文本文件有如下特性:

1。由若干个“行”元素组成,每一行都必须以 \n 结尾。除此之外不含有其它元素。
2。每一行内部都不含有 \n 字符,也不含有 \0 字符。

以上说明,如果一个文件的最后一个字符不是 \n,或者里面含有 \0 字符,那么它必须被判定为二进制文件。

Re: ftp中ascii与二进制传输有什么不同呀?

发表于 : 2010-05-03 10:10
新office菜鸟
poet 写了:这是针对服务器和你的客户端来说的。ftp 协议由于历史的原因,设定了缺省值为 asc 模式,也就是说如果你没有进行任何设置,将使用asc模式传输,这导致了缺省情况下 bin 文件可能无法正常传输。

如果服务器是 Windows,客户端也是 Windows,那么对于文本你怎么设置都无所谓。对于bin你必须设置为bin。——总的来说,全部设置为 bin 即可。

如果服务器是 Linux,客户端也是 Linux,那么你怎么设置都无所谓,因为Linux下处理bin和asc是一样的,总的来说,无须任何设置。

如果服务器是 Linux,客户端是 Windows。那么对于文本可以任意设置,但对于bin必须设置为bin。总的来说,全部设置为bin即可。

如果服务器是 Windows,客户端是 Linux。那么文本必须设置为文本,bin必须设置为bin。通常不可以混用。


一句话概括就是,如果你的服务器跟客户端都是linux,那么你无须理睬这个设置。否则,需要进行相应的设置,最好设置为 bin。——但当服务器是windows时全设bin还不行,还需要正常设置文本文件的类型为 asc。——这隐含着告诉你使用linux作为服务器可以简化很多事情。
谢谢,不知道设置这个ascii是在客户端还是服务器上设置的呢?