Какой смысл режима ASCII в FTP?

12228
zildjohn01

Почему в FTP есть режим ASCII, который преобладает в современных реализациях программного обеспечения и FTP? Почему бы просто не всегда использовать двоичный файл независимо от данных?

16

5 ответов на вопрос

23
Sinan Ünür

Если есть сомнения, прочитайте RFC :

Файловая структура используется по умолчанию, если команда STRUcture не использовалась, но как файловые, так и структурные записи должны приниматься для «текстовых» файлов (т.е. файлов с TYPE ASCII или EBCDIC) всеми реализациями FTP. Структура файла будет влиять как на режим передачи файла (см. Раздел «Режимы передачи»), так и на интерпретацию и хранение файла.

«Естественная» структура файла будет зависеть от того, на каком хосте хранится файл. Файл исходного кода обычно хранится на мэйнфрейме IBM в записях фиксированной длины, но на DEC TOPS-20 в виде потока символов, разделенных на строки, например, с помощью. Если передача файлов между такими разнородными сайтами будет полезной, у одного сайта должен быть какой-то способ распознать предположения другого относительно файла.

и т. д. и т. д. Короче говоря, это необходимо для того, чтобы текстовые представления в одной кодировке были правильно преобразованы при передаче на хосты с использованием другой кодировки.

4
user14456

Потому что разные операционные системы (Windows, UNIX, VAX) используют разные методы окончания строки для простых текстовых файлов.

Windows (DOS) использует пару CR / LF, UNIX использует только одну из них. Режим ASCII конвертирует пары CRLF, а режим BIN - нет.

Рон

Это не только различия в кодировке конца строки, о которых вы упомянули, но и различия в кодировке самих символов, такие как разница между ASCII и EBCDIC. Ответ @Sinan сайтов о специфике, задокументированной в RFC-959 Tall Jeff 15 лет назад 4
1
David Markle

Я думаю, что это просто потому, что иногда это удобно. Еще в тот день, когда FTP был, как вы получили файлы из одной системы в другую, это большая экономия времени - вы не должны знать, что система была на другом конце, чтобы иметь читаемый текстовый файл.

Но да, в основном это просто неприятность сегодня. Просто испорченная машина для непосвященных!

0
Matthew Scharley

Режим ASCII используется для того, чтобы программное обеспечение могло автоматически изменять символы EOL на правильные значения для клиента / сервера в зависимости от того, загружаете вы или скачиваете. Если вы загружаете в систему того же типа, что и вы, нет никакой разницы в этих режимах.

Причина этого режима заключается в том, что не все программное обеспечение во всех системах будет правильно обрабатывать EOL, которые не являются точным типом EOL (например, многие программные продукты Windows будут правильно обрабатывать только «\ r \ n» и что-то блокировать). ужасно на "\ n").

0
boomhauer

ASCII mode had its place back in the day when character and EOL encoding was a real problem, but I would like to see ftp clients remove or perhaps just hide this option today. Nowdays it's mostly just EOL conventions that get messed up between systems, but I've found most decent text editors don't care anymore anyway. So in order to avoid corrupting binary files (or even some text based ones), I recommend just using binary mode for everything.

Похожие вопросы