一般に、テキストファイルを転送する場合、ASCIIモードの使用が推奨されていますが、これには疑問を感じています。
例として、クライアントがWindowsでSJIS、サーバがUNIXでEUCの場合、ASCIIモードでクライアントからSJISのテキストファイルをアップロードすると、
そのファイルの改行コードがCR+LFからLFになりますが、その結果、SJISで改行コードがLFのなんとも中途半端なファイルができてしまいます。
それなら、いっそのことテキストファイルであろうがなんだろうが、すべてのファイルをBinaryモードで転送した方がよいように思います。必要ならば、クライアントやサーバでnkfなどのコマンドを使った方がよっぽどシンプルでトラブルが少ないと思います。
ASCIIモードの存在意義について教えてください。
もともとは、文字通りASCIIコードで利用する際の利便性を向上するために生まれたものであるため、マルチバイト言語圏での利便性については中途半端になってしまっているのは否めないと思います。
したがって、私自身も個人的にはあまりASCIIモードは当てにしていません。
しかし、CGIのアップロードなどでは、
「文字コードは勝手に対象サーバの標準に合わせられては困るけれど、改行コードはできればサーバ設定にあわせてほしい」
という局面もあるかと思います。そういった場合に使う意味はあるのではないでしょうか。
なるほど。ASCIIコードのための機能なのですね。それ以外は想定外ということで。
納得できました。