投稿者: 管理人
投稿日時: 99/12/29 01:22:09
>macで、j-edit使ってます。シフトjis+LFでアップロードしてます。
>
>226-WARNING! 1118 bare linefeeds received in ASCII mode
> File may not have transferred correctly.
>226 Transfer complete.
これはこれでいいです。(^^)
>
>という、表示が出たので他の人に聞いてみたら、LFで、なんでアスキーモードなの?
>バイナリーじゃないの?といわれました。
改行コードとアスキー、バイナリの種別は関係ありません。
FTPプロトコルの場合、AVI,JPEG,MPEG、プログラム、圧縮ファイルなど、
バイナリ形式データを送るならバイナリ、テキストコードから
なるデータを送るならアスキーモードを使います。
ただし、FTPソフトの中には勝手に改行コードを修正したり、
漢字コードを変換したりするものがいくつかあります。
これは各プラットフォームで改行コードや文字コードが違うことに
対応するための付加機能です。ちなみに
Unix(linux)の標準なのはEUCコード+LF
WindowsはSJIS+CRLF
MacはSJIS+CR
です。プロバイダのWWWサーバはたいていUNIX(Linux)です。
送り手と受け手のOSの違いを検出し、勝手にテキストを加工する
FTPソフトでCGIをアスキーモードで送ると、改行コードや
文字コードを変換してしまうので、たとえSJIS+LFで送っても、
サーバ上のファイルはSJIS+LFにはなりません。これに対して、
バイナリモードで送るという手もありますが(友人の方はこれを
誤解しているんでしょう)、この場合、テキストとバイナリの
扱いの違いがあるので、送り側のOS,受け手のOSの組み合わせに
より動いたり、動かなかったします。特にUnix上においては、
テキストファイルとバイナリファイルは扱いが違うので、
他のプラットフォームのテキストデータをバイナリで
送り、それをテキストとして処理するのは好ましくないです。
よって正しい解決法は、FTPソフトの自動文字コード変更機能、
自動改行コード変換機能を探して、それを切り、テキストモードで
送るというのが正解です。(もちろんサーバがUNIXの場合ですが・・)