ASCII vs Binary vs Auto?

16

Saya mentransfer file antar server dan baru mulai memperhatikan bahwa beberapa dari mereka akan dimodifikasi menjadi satu garis kontinu yang panjang sebagai lawan memiliki pengembalian dan jeda baris yang semula mereka miliki. Saya berasumsi ini ada hubungannya dengan jenis transfer Klien FTP saya yang awalnya ditetapkan ke "Otomatis," tetapi memakai "Biner" dan "ASCII" sebagai opsi tambahan.

Singkatnya, apa perbedaan antara cara saya mentransfer file dari satu server ke server lain, dan apakah perbedaan-perbedaan ini mampu memodifikasi file sedemikian rupa seperti yang saya sebutkan di atas?

Mentransfer DARI Windows TO Linux.

Sampson
sumber

Jawaban:

27

Mode transfer "Binary" dari FTP menyalin file dengan tepat, byte demi byte. Sederhana dan mudah.

Namun, ketika membawa file teks antara sistem operasi yang berbeda, ini mungkin bukan yang Anda inginkan - sistem operasi yang berbeda menggunakan kode yang berbeda untuk mewakili jeda baris. Mode "ASCII" ada untuk tujuan ini: secara otomatis menerjemahkan semua akhir baris dari format sistem sumber ke tujuan.

Tidak yakin tentang "Otomatis", tapi saya bayangkan kelihatannya ekstensi file atau sesuatu yang serupa untuk memutuskan apakah itu file teks, dan mencoba menebak mode yang sesuai.

Mode mana yang Anda inginkan tergantung pada apa yang Anda lakukan dengan file ... jika Anda hanya menyalinnya untuk membuat cadangan, maka Anda mungkin ingin menyalin dalam mode biner sehingga mereka akan persis sama ketika Anda kemudian mengembalikannya ke server windows lagi. Jika mereka harus dapat digunakan sebagai file teks (mungkin sebagai file konfigurasi untuk program lintas platform?) Di kedua sisi, Anda ingin menggunakan mode ASCII untuk menerjemahkannya.

EDIT: Sejauh yang saya tahu, file FTP dari Windows ke Linux seharusnya tidak pernah menghasilkan jeda baris menghilang ... namun , jika Anda menyalinnya dalam mode ASCII, dan kemudian membawa mereka kembali ke server Windows dalam mode biner, Linux -akhiran garis gaya mungkin tidak dikenali pada kotak Windows. (Notepad tidak akan melihatnya; Wordpad akan; YMMV dengan perangkat lunak lain.)

(Hari ini, kenyamanan semacam itu - mengubah akhir baris secara otomatis - mungkin tampak aneh dalam protokol dasar seperti FTP. Namun ketika FTP ditemukan, mengirim file teks adalah hal yang biasa, dan salah satu tujuan protokol adalah membuat ini semudah mungkin.)

Josh
sumber
Deskripsi keduanya bagus. Saya merasa jauh lebih sedikit bingung sekarang.
Sampson
terima kasih saya tidak pernah mengerti maksud dari mode ASCII itu, dan sekarang saya pasti hanya akan menggunakan mode biner
Kiwy
3

Memang ada perbedaan, dan mereka akan mengacaukan transfer file non-teks-biasa Anda kecuali Anda menggunakan opsi biner - umumnya selalu digunakan jika ok :)

Chopper3
sumber
Apakah tidak ada cara untuk mengembalikannya? Atau apakah saya hanya perlu mentransfer dengan Binary sekarang untuk menghindari ini lagi di masa depan?
Sampson
Saya yakin Anda bisa menghapusnya tetapi mungkin butuh waktu lama, saya akan sangat tergoda untuk mengirim ulang mereka.
Chopper3
1

Sistem operasi apa yang Anda transfer file ke / dari? Linux / Unix menggunakan jeda baris yang berbeda dari Windows. Jadi jika Anda menghasilkan file di komputer linux dan membukanya di windows mungkin terlihat aneh. Ada beberapa utilitas untuk memperbaikinya meskipun menurut pengalaman saya jika Anda menggunakan wordpad di windows, bukannya notepad, Anda akan baik-baik saja.

einstiien
sumber
Saya membuat ini pada windows dalam IDE, dan kemudian memindahkannya ke server linux. Di kemudian hari, saya membukanya dari server linux untuk menemukan garis panjang terus menerus.
Sampson
Coba jalankan dos2unixdan lihat apakah itu memperbaiki garis
einstiien
1

Windows dan Unix memiliki byte yang berbeda di akhir baris (Windows a 0D 0A hex, Unix hanya 0A). Saat mentransfer file dalam mode Biner, byte file akan dipindahkan dari satu komputer tidak berubah. Ini diperlukan untuk format biner (misalnya file ZIP, Gambar, dll.) Tetapi dapat menyebabkan masalah dengan file teks: Misalnya notepad.exe pada Windows akan menampilkan file teks dengan hanya istirahat baris gaya unix sebagai satu baris panjang, editor unix mungkin menunjukkan ^ M di akhir setiap baris ketika melihat gaya Windows.

Jadi secara teknis untuk format biner (zip, jpg, png, dan lainnya yang tak ada habisnya) Anda perlu mengatur FTP ke BINARY, sedangkan untuk format teks (HTML, PHP, CGI, dll.) Anda perlu mengaturnya ke ASCII.

Sebagian besar program FTP yang baik juga memiliki pengaturan otomatis, yang berarti mereka akan menentukan mode (BINARY atau ASCII) tergantung pada ekstensi file yang terkenal, misalnya itu akan secara otomatis mengalihkan transfer untuk file JPG ke BINARY dan mengirim / menerima file PHP di ASCII mode.

Yamodax
sumber