• ベストアンサー

ダウンロードについて

こんにちは。 あるサイトを作り、そこからデータをダウンロードできるようにしたいと思っています。 サイトに、あるテキストファイルを<a href="~.txt">ファイルの名前</a>というように貼り付けたのですが、自分で実際にダウンロードしてファイルを開いてみたら、改行コードが全て■に変わってしまっていました。いつのまにかバイナリファイルになってしまったのでしょうか。ちなみに、アップロードした段階ではきちんとテキストファイルになっています。 これを解決する手段はありますでしょうか。よろしくお願いします。

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

  • ベストアンサー
回答No.6

こんばんわぁ、Blackwinglsです。 アスキー(テキスト)モードでアップするんじゃぁなくて、バイナリーモードで転送すれば、シストJISの状態でダウンロードされるんじゃぁないんですか・・・・・(^^;) ちなみに、eucのテキストファイルを強引にメモ帳で表示したら、改行コードが■の縦長の細いやつで表示されましたよ。たぶん、同じ状態での文字化けだと思います。 ところで、メモ帳ってnotepadの事じゃぁありませんでしたっけ? 最近のWindowsは良く知らないもので・・・・・(^^;) ではでは~☆彡

crooked_man
質問者

お礼

すごいですすごいですすごいです! バイナリモードで、アップロードしたら、ダウンロードしたときに正常になりました!! いまだに、理屈が理解できないのですが(汗)バイナリで転送したことによって、eucにならずにすんだということでしょうか… 理屈はゆっくり考えることとします。 とにかく、たいへん感謝です。 ありがとうございました。 PS ほかのみなさまもありがとうございました。

crooked_man
質問者

補足

えっ、逆にバイナリモードで、転送してみるということですかぁ? やってみます! メモ帳=notepadなのですか?(たしかにどちらもnotepad.exe。)でも、たしかに、メモ帳で開くとダメでnotepadで開くと直ってるので、、、

すると、全ての回答が全文表示されます。

その他の回答 (5)

回答No.5

こんばんわぁ、Blackwinglsです。 <a href="~.txt">ファイルの名前</a> としたとき、このリンクをクリックするとIEが起動してIEの画面上に内容が表示されるのですか? それともダウンロードが始まって、そのファイルをメモ帳で表示しているのですか? メモ帳でテキストを作成するとシフトJISで作成されます。 WebサーバーはUNIX(ですよね?)ですので、アスキーモードで転送するとUNIX用の改行コードに自動変換してサーバーにアップロードしてくれます。 これを仮に後者の方法で表示すれば、UNIX用の改行コードのままメモ帳で表示することになるので、改行コードが化けるのではないでしょうか? 出来たり出来なかったりはキャッシュの問題ではないでしょうか? ではでは~☆彡

crooked_man
質問者

補足

何度もありがとうございます。 いったんダウンロードしたものをメモ帳で開くと、改行コードが化けるんです。 なるほど、サーバ側のUNIX用の改行コードになったものを、そのままWindowsにダウンロードしてくるので、改行がUNIX用のままになっていて化けるという可能性ですね!(そんな気がしてきました!) とはいえ、そうならないようにする方法がわかりません(涙)。なお、メモ帳ではなく、Notepadで開くと正常になっていました。(ということは、NotePadがさまざまな種類の改行を自動認識しているということ、、、?) とはいえ、ユーザに、「いったんNotePadで開いて保存しなおしてください」と言うのも、根本的な解決になっていないし。 もう少し、考えてみますね。

すると、全ての回答が全文表示されます。
  • kalze
  • ベストアンサー率47% (522/1092)
回答No.4

>アップしたテキストファイルをサイト上で開いてみたときは改行は化けていませんでした これはIE上で開いて見てみたということですか? それなら意味無しです IE上で開く際はIEが改行コードを自動的に変換してますから。 プロパティをみたらテキスト文書となっていたのは、拡張子がtxtなので普通です んー単純に改行コードの問題のような気がしますね

crooked_man
質問者

補足

何度もありがとうございます。 >IE上で開く際はIEが改行コードを自動的に変換してますから。 そうですよね、ということは、やはり、改行コードの問題だと思います(色々調べて、やはりそんな気がしました)。ということは、やはり転送時に、なんらかの都合で改行コードが片方のみになってしまったってことでしょうか、、、 (確かに、テキストモードで転送しているのですが(涙))

すると、全ての回答が全文表示されます。
回答No.3

こんばんわぁ、Blackwinglsです。 問題のTXTファイルの文字コードは何ですか? 改行コードが、LF や、CR+LF、CF 等、文字コードの設定によって変わってきます。 また、ダウンロードページのcharsetが、そのまま引き継がれてTXTファイルがダウンロードされる時もあるようなので、Metaタグのチェックもしてみてください。 ではでは~☆彡

crooked_man
質問者

お礼

ふたたび、できなくなりました(涙) テキストファイルの文字コードの調べ方が分かりません…というか、同じテキストファイルなのになぜ改行記号の種類がいっぱいあるのでしょう。 Metaタグは、SHIFT_JISになっていて、EUC-JPにも直してみましたが、サイト自体が文字化けしてしまったので、やはりSHIFT_JISに戻しました。

crooked_man
質問者

補足

対象のテキストファイルを、なにも変えずに上書き保存したあとアップロードしてみたら、なんとできました! そのテキストファイルというのは、会社のコンピュータで作ったものを、そのまま家に持ってきたものなのです。それがなんらかの原因だったのでしょうか……(会社のテキストエディタと設定が違うとか?? でも同じNotePadを使ったはずなのですが) 一安心なのですが、こんなことがあると、ダウンロードしたそれぞれの人がきちんと使えるのかどうか気になって夜も眠れません。 詳しい原因のわかるかたいないでしょうか。

すると、全ての回答が全文表示されます。
  • kalze
  • ベストアンサー率47% (522/1092)
回答No.2

アップロードした段階ではきちんとテキストファイルになっていますということですが、このときの確認はサーバにログインしてサーバ上で行ったんですよね? 決してFFFTPの右ペインのものをテキストエディタで開いたとかじゃなく。 アップロードするときにWindowsの改行コードは「\r\n」だったのが、サーバにあわせて「\n」だけになり、「\n」の状態のままダウンロードしてきているのでおかしくなっているだけかもしれません。 バイナリとしてアップしている可能性もあるでしょう 原因がたくさん考えられるので、まずは原因を特定しなけいと、解決する手段はなんともいえませんしね

crooked_man
質問者

補足

アップしたテキストファイルをサイト上で開いてみたときは改行は化けていませんでした(これでは確認したことにならないでしょうか?)。 また、サイト上のリンクを右クリックしてプロパティを見たら、「テキスト文書」となっていたので、原因がよくわかりません。 確かに、ffftpの調子が、なんとなくおかしいような気がします(アップしたのに日付が更新されていないとか…)。バイナリとしてアップしているのかもしれないです。もっと深く確かめてみます。

すると、全ての回答が全文表示されます。
回答No.1

ファイル転送モードがバイナリになっていると思います。テキストモードにするか、もしくは自動判定できるソフトを使用してください。

crooked_man
質問者

補足

実は、調べたらそう書いてあったのでテキストモードでアップロードしたのですが、何度やってもうまくいきません。ダウンロードするときもモードがあるのですか?

すると、全ての回答が全文表示されます。

関連するQ&A