(1)Windowsマシンの NotePad で作成した2行からなるテキストファイルを
WEBサーバにFTPソフトでアップロード。
(2)そのファイルをVBプログラムの URLDownloadToFile でダウンロード。
(3)つづいて、Line Input で一行ずつ処理しようとしたところ、
2行のはずが、改行コードが”↑”のような文字に化けたため、
1行で読み込まれてしまいました。
・ファイル自体はダウンロードされるます。
・また、そのファイルを WordPad で開くときちんと2行で表示されます。
・が、NotePad で開くと、改行コードが文字化けして1行で表示されます。
よろしくお願いします。
アップロード時に化けたのか、ダウンロード時に化けたのかを確認する必要がありますね。
FTPでアップロードする際、バイナリモードで送信していますか?
それとも、アスキーモードで送信していますか?
また、テキストファイル以外(例えば、exeなどのバイナリファイル)を
ダウンロードした場合も、データが化けるのでしょうか?
> が、NotePad で開くと、改行コードが文字化けして1行で表示されます。
『“↑”のような文字』との事ですが、具体的には、何に化けているのでしょうか?
ダウンロードしたファイルの改行コードをバイナリエディタ等で調べみてください。
魔界の仮面弁士 さん、ご返信ありがとうございました。
バイナリモードでFTPでアップロードし、ダウンロード後のファイルを
バイナリエディタで確認しました。
送信前の改行コードは "0D 0A" (HEX) で、
ダウンロード後 は"0A" (HEX) だけになっていました。
"0D" (HEX) が抜け落ちたかたちです。
テキスト以外のバイナリファイルは未確認です。
関係ないかもしれませんが、ひとつ気になることがあります。
インターネットトランスファコントロールの OpenURL メソッド
で ダウンロードする処理についてですが、
同じプログラムなのに、会社で実行するのと自宅で実行するのとでは
結果が異なります。
会社で実行すると、目的のファイルが完全にダウンロードできるのに、
自宅だと途中まで、具体的には全体で30KBのファイルなのですが、
4KBまでしかダウンロードされません。
(このため、別の方法として URLDownloadToFile を使いはじめました。)
ちなみに、ISPは CATV です。
HTTPプロトコルを使用している以上、ISPは関係ないのかなと
思いますが、原因が不明のため気になります。
<情報を追加>
0x0A は UNIX での改行コードなのですね。
FTPソフトで、バイナリ指定で当該ファイルをダウンロードして、
バイナリエディタで改行コードを確認したところ、
きちんと 0x0D0A でした。
どうやら ダウンロード時に化けたもののようです。
<解決>
なぜか、再度試したところ正常な内容でダウンロードできるように
なりました。
確実な原因は不明ですが、
きっと、SJISコードのファイルをサーバにアップロードするとき、
バイナリ指定を忘れたのだと思います。
バイナリ指定を指摘されたあとに実行したとき(返信の2番目)は
不正な内容でしたが、これはキャッシュの古いファイルが読み込まれ
たのではないかと思っています。
きちんとバイナリでサーバへアップロードすれば問題ないようです。
お騒がせいたしました。
魔界の仮面弁士さん、返信くださりありがとうございました。