On what basis should you select ACSII or Binary transfers over FTP?
Solution 1:
Windows uses both a carrige return and a line feed to show the end of a line in a text file. Unix generally uses only one (I think a line feed). When you ftp files as text, the ftp program will convert line endings for you. In binary mode the file is transfered exactly as is. So if you are transfering a text document then use ASCII. Anything else and binary is probably your best bet. As others have pointed out, most modern text editors will deal with line endings anyway (Notepad doesn't, nor is it modern :) ) so binary is by far the safer option. I also agree with @njsf, I don't like files being changed behind my back. I have editors that are quite capable of doing a find and replace to fix the line endings if it becomes necessary.
Solution 2:
On this day and age, where most text editors automatically detect and adapt to the unix/dos/mac line endings I find very little justification to use ASCII ftp transfers. I always use binary.
I don't like to have the files changed under the covers.
I actually tend to use scp now much more than ftp, and scp just copies the bits...
Solution 3:
Always use binary. Do the conversion by hand, if needed -- it's more likely never needed.
ASCII mode does just line-end conversion between systems of different obedience. It's absolutely pointless nowadays. Most editors will adapt, XML parsers mostly ignore them, you only face problems when trying to compile .c files or run sh files on Unix that have MS-DOS line-ending -- but this usually only happens because of a misplaced ASCII mode transfer.
Just say no to ASCII mode. Modern FTP clients will default to BINARY anyway.