More than 3 years later and people still don't understand FTP.
The
File
Transfer
Protocol is meant to get files from a local machine to a remote one (or vice versa). As operating systems on both machines mostly differ(ed), one feature was to automatically convert line breaks in text files (
Windows uses CRLF,
Unix uses LF,
Mac OS uses CR, and
others) so neither the user on the local machine, nor the one on the remote machine have to suffer from "foreign" line breaks using their editors.
Nowadays this is almost obsolete, as most editors can deal with all kinds of line breaks. Likewise the FTP mode (ASCII versus Binary) is not that interesting anymore as a feature. If your file size on the local machine differs from the one on the remote machine, then line breaks have been converted (on
Windows text files should size the most, as their line breaks consume 2 byte, whereas on
Mac OS and
Unix they should size the least, as line breaks consume only 1 byte).
However, this was intended for
text files only back then. Manipulating binary files always breaks them - as the corresponding bytes are not used for line breaks at all. But your FTP clients (speak: programs) can't essentially detect which files are binary and which not - file
names don't help either (just because it has an extension which is
.txt
it doesn't automatically mean its content is textual).
Is it really that much confusing/difficult? Just switch off a feature.