• ベストアンサー

アスキー、バイナリーの違い、注意点(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

  • Java
  • 回答数2
  • ありがとう数12

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.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ファイルを誤ってアスキーで転送するミスが少なくなる ぐらいでしょうか。 ただ作業現場の人に理由を聞かないと推測の域をでません。

Guno-this
質問者

補足

>まずコンピューター(LinuxもWindows)から見れば、 >ファイルに対して「アスキー」なんていう属性はなく >テキストファイルを含め >どんなファイルでもバイナリファイル(0と1のデジタルデータ)です。 0と1の事をすっかり忘れておりました… そうですよね。 コンピューターは0と1のデジタルデータで出来ているのですよね。 コンピューター暦も長いのにお恥かしい限りです(汗) >昨今の優秀なWindowsのテキストエディタは >ほとんどの文字コードに対応し、改行コードも設定できます。 >ですからわざわざ「アスキー」でアップロードする意味がなくなって>きています。 時代と共に変わっていっているのですね… そうなると、作業場でアスキーとバイナリーの違いがあるのも少しだけ関連があるように思えます。 >あとはclassファイルを誤ってアスキーで転送するミスが少なくなる ぐらいでしょうか。 そこまで考えた事がありませんでした。 現場で詳しい方の手が空いた時にでも理由を聞いてみます。 とても参考になりました。 FFFTPなどでファイルを転送する際は気を付けるように致します。 ありがとうございました。

その他の回答 (1)

  • kazumero
  • ベストアンサー率40% (20/49)
回答No.1

.javaファイルはソースコードだから、私もアスキーモードで転送しています。 .javaファイルをコンパイルしてできる.classファイルでしたら、バイナリーモードで転送しますが。 恐らく、作業現場のサーバの仕様で、改行コードを変換されるとおかしなことになるからじゃないでしょうか。

Guno-this
質問者

補足

早速のご回答ありがとうございます。 >javaファイルはソースコードだから、私もアスキーモードで転送しています。 質問者さんのところはアスキーであげられているのですか。 私のところがバイナリーで上げているのは特異と考えて居た方が良いのかもしれませんね(--; >javaファイルをコンパイルしてできる.classファイルでしたら、バイナリーモードで転送しますが。 やはり、 Javaファイル(アスキー)、 classファイル(バイナリー)、 これが一般的ですよね…(汗) >恐らく、作業現場のサーバの仕様で、改行コードを変換されるとおかしなことになるからじゃないでしょうか。 考えとしては此処も考えたのですが、 どうも納得がいかず質問をさせて頂いておりました(汗) ご回答ありがとうございます。 Javaファイルを必ずしもバイナリーで上げるものだと勘違いしなくて済みました。

関連するQ&A

  • FTPのアスキーモードってバイナリーモードって?

    FTPにはアスキーモードとバイナリーモードとありますが、どちらを使用したらよいか分かりません。 例えばWINDOWSのnotepadで作成したsqlファイルをUNIXサーバへ転送する時はアスキーモードでしょうか? internetでダウンロードしたEXEファイルをWINDOWSからUNIXサーバへ転送する時はバイナリーモードでしょうか?教えて頂けないでしょうか?よろしくお願いいたします。

  • 強制的にASCIIファイルがバイナリファイルになってしまうのでしょうか

    強制的にASCIIファイルがバイナリファイルになってしまうのでしょうか? 海外のドメイン登録・webスペースサービスを利用しています。 汎用CGIをそこのcgi-binに上げたところ動作しませんでした。 理由は「cgiファイルがバイナリファイルになっているから」とのこと。 FTPソフトで送信する時には .cgi のファイルはテキストファイルとして転送する設定になっています。 また他の海外のホスティングを使用した時にはこのようなことはありませんでした(今回は同一ドメインで別のホスティングに移行したもの)。 質問ですが 1 FTPソフトでは.cgiファイルがテキストとして送信できるようになっているのになぜ、サーバーに上がったらそのファイルはバイナリファイルに勝手に変換されてしまっているのでしょうか? 2 サーバーに上がっているファイルを直接、自分自身でほんとうにバイナリなのか、アスキーなのか確認する方法はありますか? 3 具体的にどのようにしたら「絶対に間違いなく」.cgiファイルをアスキーファイルとして転送することができますか? FTPソフトはホームページビルダーの「ファイル転送」を使用しています。 設定は間違いなく.cgiはテキスト、となっています(従来のホスティングでは一切問題がなかったのでソフトのせいとは思えません)。

  • PHPのfopenのバイナリモードについて

    PHPのfopen時のバイナリモードについて質問です。 PHPのマニュアルにはWINDOWSのようなバイナリとテキストモードの形式の違う システムでは、画像等のバイナリファイルを扱うときはbを付けてバイナリモードで扱うことが推奨されていますが、 WINDOWS環境でためしたところ、画像ファイルをバイナリではなくテキストモードで開いて中身のデータを読み込んで、別名でfopen("~.jpg","w")で書き込んでも、きちんと表示される画像が作成されました。 テキストモードでバイナリファイルを開いても読み込めってさらに、新規でかきこめるなら なぜ二つのモードが存在するのでしょうか? ちなみに、WINDOWSにおけるバイナリとテキストモードの違いって改行文字が ¥nか¥r¥nの違いだけでしょうか? リナックスではバイナリもテキストも中身の改行文字は¥nとなるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • バイナリ転送の拡張子指定可能なFTPクライアント

    UNIXからWindowsに、 テキストとバイナリが混在したフォルダ内ファイルの転送を フォルダごと一気に行いたいと思っています(テキストのみアスキー転送で行いたい)。 ファイルの内訳としては、 テキスト→いろんな拡張子(100種類くらい) バイナリ→EXCELファイルのみ です。 フリー、シェア含めいろんなFTPクライアントを調べてみましたが、 アスキーモードで転送するファイルの拡張子を設定するソフトはあるけど、 内訳が上の通りなので、100種類の拡張子を登録する必要があります。 逆にバイナリ転送を行うファイルの拡張子を設定(その他は全てアスキー転送)できるソフトがあれば良いのですが… もし知っている方がいらっしゃったら教えてください。

  • ASCIIモード?って?

    cgiの設定でレンタルサーバから「HTML/CGIなどはテキストASCIIモードにてアップロードして下さい。」と説明あったんですが、ASCIIモードの設定ってFetchだと何処にありますか?同様にFFFTPにもあるのでしょうか?そのような文字が見当たりません。「PASVモード」を使うとは違いますよね?パーミッションの設定の事ですか?それともデータ送る時のRAW DATAとかの設定かな?よくわかりません。

    • ベストアンサー
    • CGI
  • 改行コードを自動変換してくれるFTPクライアント

    テキストファイルをアップロードするときに、改行コードを自動変換してくれるFTPクライアントを探してます。 今まではFFFTPを使用していたのですが、このソフト、自動で改行コードを変換してくれないようです。 サーバーの漢字コードにEUCを選択し、転送モードをアスキーにして転送してみましたが、改行コードはCRLFのままでした。 テキストファイルのアップロードではFTPソフトが自動で改行コードを変換してくれるものだと思い込んでいたのですが。。。 やりたいことは、Windowsで作ったS-JIS/CRLFのテキストファイルを、漢字コードはS-JISのままで改行コードだけをLFのみに自動変換してLinuxサーバーにアップロードしたいのです。 質問としては、 (1), FFFTPで、自動で改行コードのみを変換し、漢字コードはそのままでアップロードする方法がありましたら教えてください。 (2), もし、(1)ができないようでしたら、他のソフトでお勧めがありましたら紹介してください。 できれば、FFFTPのように、ビューワにメモ帳など自分の好きなアプリケーションを指定できる機能があれば助かります。 宜しくお願いします。

  • CGIをアスキー転送モードでアップすると「Internal Server Error」となります。

    CGIをダウンロードして、サーバーにアップロードしたのですが、 CGIが作動せず、「Internal Server Error」となってしまいます。 KENTのフリーCGIほか、いろいろなCGIで試してみても同様です。 転送モードやパーミッション等の基本的な設定は間違っておりません。 他のサーバーであれば、問題なく動きました。 いろいろと試したところ、どうやら改行コードの問題のようだったため、 ダウンロードしたCGIファイルを、エディタにてLFに変換して保存し、 バイナリ転送モードにてアップロードしたところ、作動しました。 通常であれば、このようなことをしなくても、ダウンロードしたCGIファイルを アスキー転送モード(もしくは自動)でアップロードすれば 作動すると思うのですが、この原因は何なのでしょう? サーバー側の設定の問題なのでしょうか? どなたかもし分かりましたら、ご教授お願いいたします。

    • ベストアンサー
    • CGI
  • なぜ sftp には ASCIIとBINARYといったモードがないのでしょうか?

    FTPには、 asciiとbinaryモードがありテキストファイルなどは asciiで転送すればプラットフォームに合わせて変換してくれますが、なぜ sftpにはそのようなモードがないのでしようか?

  • FFFTPソフトでファイルが転送できないのです。

    FFFTPソフトでファイルしていたところ、はじめは上手く転送できていたのですが、途中で「アップロードできませんでした」とでて、中止を選ぶとホスト側にアップロードしようとしたファイルの名前が表示されますが、ファイルのサイズは0バイトです。 ファイル名は全角文字ではないし、ホストの容量も余裕があります。アスキーバイナリの転送モードも確かめました。 他に転送できない理由が見つからなくて困っています。 転送できるようにするには、どうしたらいいのでしょうか。  ご教授宜しくお願い致します。

  • バイナリコードを見つけ出すツールを教えてください

    私のパソコン内にテキストコードのみで構成される拡張子がtxtやhtmlのファイルが大量にあります。 パソコンがウイルスに感染すると、パソコン内のファイルがいつの間にか変更されていることがありますが、変更されているかどうかを調べるためにバイナリコードを見つけ出すツールを探しています。 テキストコードのみで構成されていたファイルの中身が変更されていたなら、バイナリコードが付加されているはずなので、バイナリコードを見つけ出すことが出来れば、そのファイルの中身が変更されていることが分かるという判断です。 notepadでバイナリファイルを開くと、黒い四角や難しい漢字、半角のカタカナなどが表示されるので、とりあえず その黒い四角 をコピーして 試しに GrepReplaceで、検索文字列の欄に 黒い四角 をペーストして、あるファイル(テキストコードのみのファイルにバイナリファイルを結合させたファイル)の中身を検索しましたが、 黒い四角があるはずなのに、GrepReplaceでは残念ながらヒットしませんでした。 バイナリコードである 黒い四角 を検索文字列にして検索をすると、的確にヒットするツールがあれば教えてください。 またバイナリコードが含まれているかどうかについて、数多くのファイルを一括して調べることが出来るツールがあれば教えてください。