- ベストアンサー
アスキー、バイナリーの違い、注意点(FFFTP)
「アスキー」「バイナリー」 FFFTPこの二つのモードがありますが、用途の境目がわかりません。 FFFTPでJavaファイルを上げる場合なのですが、 ローカル(Windows)のサーバー側(Linux)へFFFTPで転送する際に 作業現場では“バイナリー”で上げて欲しいと言われています。 私の考えでは、 テキスト(人間が読める言語)という定義のアスキーの設定で上げるものだと思っていたので驚いたのですが、何故Javaファイルをバイナリー設定で上げる事になるのでしょうか? [現時点でまとめてある認識] アスキー -------------------------------------------------------------- (1)基本的に人間が読めるテキストベースのファイルモード (2)サーバの設定に合わせて改行コードが変換してファイルを上げる (3)テキストファイル系(txt/html/JS/CSS..) バイナリー -------------------------------------------------------------- (1)基本的に機械が読み込む為のファイルモード (2)ファイルを上げた際に何も起こらず、そのままファイル上げることができる。 (3)画像ファイル・音楽ファイル系(jpg/GIF/PNG/mp3..) この認識の上ですと、 “Javaファイルは人間が読めるもので、テキストファイルである”ということから、“アスキー”で上げるのが妥当だとは思っています。 Javaファイルを“バイナリー”で上げる理由は何なのでしょうか? コンパイルの際に改行コードが変換されると不都合があるからなのでしょうか? 認識で間違っている点がございましたら、 ご指摘・ご教授の程宜しくお願いします。 参考サイト様 ------------------------------------------------------- ttp://www.res-system.com/item/339 ttp://www.komakusa.net/internet/appendix.html ttp://www.wanichan.com/beginner/pc/win19.htm
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まずコンピューター(LinuxもWindows)から見れば、 ファイルに対して「アスキー」なんていう属性はなく テキストファイルを含め どんなファイルでもバイナリファイル(0と1のデジタルデータ)です。 ffftpでは アスキーモードでアップロードすると Cr,Lfの改行コードがLfに置換され 逆にダウンロードする際は LfがCr,Lfに置換されます。 これはWindowsの標準の改行コードがCr,Lfで LinuxやUNIXがLfを標準の改行コードにしている為ですが 昨今の優秀なWindowsのテキストエディタは ほとんどの文字コードに対応し、改行コードも設定できます。 ですからわざわざ「アスキー」でアップロードする意味がなくなってきています。 (WindowsでLfの改行で保存し、バイナリでアップすれば良い。 逆にこのファイルをアスキーでダウンロードするとCrLfになります。) どちらにしても改行コードを統一するメリットはあります。 例えばviエディタでCr,Lfのファイルを開くと「CTRL+M」とかでて見づらいですし、 Lfだけだと、昔のWindowsのメモ帳等で開くと改行されません。 (Linuxをsambaで直接みてる人にとってはCr,Lfの方が都合が良い場合もあります。) またVSSやSVN等のバージョン管理ソフトを使っていると、改行コードが変わっただけで ファイルに変更があったと勘違いされてしまいます。 そういう場合、意図しない改行コードの変換があっては困ります。 #1さんの言われるように仕様的に問題があるのかもしれません。 あとはclassファイルを誤ってアスキーで転送するミスが少なくなる ぐらいでしょうか。 ただ作業現場の人に理由を聞かないと推測の域をでません。
その他の回答 (1)
- kazumero
- ベストアンサー率40% (20/49)
.javaファイルはソースコードだから、私もアスキーモードで転送しています。 .javaファイルをコンパイルしてできる.classファイルでしたら、バイナリーモードで転送しますが。 恐らく、作業現場のサーバの仕様で、改行コードを変換されるとおかしなことになるからじゃないでしょうか。
補足
早速のご回答ありがとうございます。 >javaファイルはソースコードだから、私もアスキーモードで転送しています。 質問者さんのところはアスキーであげられているのですか。 私のところがバイナリーで上げているのは特異と考えて居た方が良いのかもしれませんね(--; >javaファイルをコンパイルしてできる.classファイルでしたら、バイナリーモードで転送しますが。 やはり、 Javaファイル(アスキー)、 classファイル(バイナリー)、 これが一般的ですよね…(汗) >恐らく、作業現場のサーバの仕様で、改行コードを変換されるとおかしなことになるからじゃないでしょうか。 考えとしては此処も考えたのですが、 どうも納得がいかず質問をさせて頂いておりました(汗) ご回答ありがとうございます。 Javaファイルを必ずしもバイナリーで上げるものだと勘違いしなくて済みました。
補足
>まずコンピューター(LinuxもWindows)から見れば、 >ファイルに対して「アスキー」なんていう属性はなく >テキストファイルを含め >どんなファイルでもバイナリファイル(0と1のデジタルデータ)です。 0と1の事をすっかり忘れておりました… そうですよね。 コンピューターは0と1のデジタルデータで出来ているのですよね。 コンピューター暦も長いのにお恥かしい限りです(汗) >昨今の優秀なWindowsのテキストエディタは >ほとんどの文字コードに対応し、改行コードも設定できます。 >ですからわざわざ「アスキー」でアップロードする意味がなくなって>きています。 時代と共に変わっていっているのですね… そうなると、作業場でアスキーとバイナリーの違いがあるのも少しだけ関連があるように思えます。 >あとはclassファイルを誤ってアスキーで転送するミスが少なくなる ぐらいでしょうか。 そこまで考えた事がありませんでした。 現場で詳しい方の手が空いた時にでも理由を聞いてみます。 とても参考になりました。 FFFTPなどでファイルを転送する際は気を付けるように致します。 ありがとうございました。