FTPのBinaryモードとASCIIモード
FTPでファイルをダウンロード、アップロードする際、BinaryモードかASCIIモードか選択することが可能です。
その違いは:
【バイナリモード】
FTPにおけるバイナリファイル転送用モードのことです。
GIFファイルやJPEGファイルなどの画像ファイルや音楽ファイルなどはバイナリモードでアップロードします。
【アスキーモード】
FTPにおけるテキストファイル転送用モードのことです。(テキストモードとも言われます)
HTMLファイルやTXTファイル、CGIファイルなどはアスキーモードでアップロードします。
アスキーモードでファイルをアップロードすると、改行コードや文字コードの変換が自動で行われます。
つまり、バイナリモードはファイルをそのまま転送されます、アスキーモードは環境に合わせてファイルを加工し、転送します。
すなわち、アスキーモードでは、ファイルが勝手に修正されちゃいますので、プログラムは思い通りに動作しない場合、ここをチェックした方がいい。
では、そんな勝手なモードどうして存在する価値があるの?
それは、OSによって改行コードがそれぞれからです。
Unix・Linux系では改行コードはLFで、CGIなど改行コードをLFにしないと動作しないです。
しかし、「Windows端末でPGを書き、Unixサーバーにアップロードする」という形を取る開発者が結構多いです、Windows端末では、デフォルトの改行コードはLFではなく、CRLFです。
このようなOS間のテキストファイル改行コードの差異を吸収するために、Ftpのアスキーモードが存在しているわけです。
もちろん、端末側もサーバー側も、意識的にエディタ等で改行コードをLFに統一すれば、アスキーモードを使う必要がありませんし、使わないほうが安全です。