Lebih
Perbedaan antara CR LF, LF dan CR line break jenis?
I'd ingin tahu perbedaan (dengan contoh jika mungkin) antara CR LF (Windows), LF (Unix) dan CR (Macintosh) line break jenis.
667
9
CR dan LF adalah karakter kontrol, masing-masing dikodekan
0x0D
(13 desimal) dan0x0A
(10 desimal).Mereka digunakan untuk menandai satu baris dalam file teks. Seperti yang anda menunjukkan, Windows menggunakan dua karakter CR LF urutan; Unix hanya menggunakan LF dan lama MacOS ( pra-OSX MacIntosh) digunakan CR.
Apokrif perspektif sejarah:
Seperti yang ditunjukkan oleh Petrus, CR = Carriage Return dan LF = Line Feed, dua ekspresi memiliki akar mereka di mesin tik tua / TTY. JIKA pindah kertas (tapi terus posisi horizontal identik) dan CR membawa kembali "pengangkutan" jadi yang berikutnya karakter yang diketik akan berada di posisi paling kiri pada kertas (tapi pada baris yang sama). CR+LF melakukan keduanya, yaitu mempersiapkan diri untuk mengetik baris baru. Seiring berjalannya waktu fisik semantik kode tidak berlaku, dan sebagai memori dan floppy disk ruang adalah pada premium, beberapa OS desainer memutuskan untuk hanya menggunakan satu karakter, mereka hanya didn't berkomunikasi sangat baik dengan satu sama lain ;-)
Paling modern editor teks dan teks aplikasi berorientasi menawarkan pilihan/pengaturan dll. yang memungkinkan deteksi otomatis dari file's end-of-line dan konvensi untuk menampilkan sesuai.
Ini adalah sebuah ringkasan yang saya temukan:
Carriage Return (CR) karakter (
0x0D
,\r
) memindahkan kursor ke awal baris tanpa maju ke baris berikutnya. Karakter ini digunakan sebagai karakter baris baru di Commodore dan Awal Macintosh sistem operasi (OS-9 dan sebelumnya).Line Feed (LF) karakter (
0x0A
,\n
) memindahkan kursor ke baris berikutnya tanpa kembali ke awal baris. Karakter ini digunakan sebagai karakter baris baru di sistem berbasis UNIX (Linux, Mac OSX, dll)The End of Line (EOL) urutan (
0x0D 0x0A
,\r\n
) sebenarnya adalah dua karakter ASCII, kombinasi CR dan LF karakter. Bergerak kursor keduanya turun ke baris berikutnya dan ke awal baris tersebut. Karakter ini digunakan sebagai karakter baris baru di sebagian besar non-Unix sistem operasi termasuk Microsoft Windows, Symbian OS dan lain-lain.Sumber
It's benar-benar hanya tentang byte yang disimpan dalam sebuah file.
CR
adalah bytecode untuk carriage return (dari hari-hari dari mesin ketik) danJIKA
demikian pula, untuk line feed. Itu hanya mengacu pada byte yang ditempatkan sebagai end-of-line marker.Cara informasi lebih lanjut, seperti biasa, pada wikipedia.
Sejak ada's tidak ada jawaban yang menyatakan hanya ini, yang terangkum singkat:
Carriage Return (MAC pra-OSX)
Line Feed (Linux, MAC OSX)
Carriage Return dan Line Feed (Windows)
Jika anda melihat kode ASCII dalam aneh format, mereka hanya nomor 13 dan 10 di berbagai radix/dasar, biasanya basis 8 (oktal) atau basis 16 (heksadesimal).
http://www.bluesock.org/~willg/dev/ascii.html
Jeff Atwood telah baru-baru ini posting blog tentang hal ini: Besar Newline Perpecahan
Berikut ini adalah esensi dari Wikipedia:
CR - kode ASCII 13
LF - kode ASCII 10.
Secara teoritis CR mengembalikan kursor ke posisi pertama (di sebelah kiri). LF feed satu baris memindahkan kursor satu baris ke bawah. Ini adalah cara di hari tua anda dikontrol printer dan teks-mode monitor. Karakter ini biasanya digunakan untuk menandai akhir baris dalam file teks. Berbeda sistem operasi yang digunakan konvensi yang berbeda. Seperti yang anda menunjukkan Windows menggunakan CR/LF kombinasi sementara pra-OSX Mac menggunakan hanya CR dan sebagainya.
Berikut ini adalah rincian.
Keadaan menyedihkan dari "record separator" atau "line terminator" adalah warisan dari zaman kegelapan komputasi.
Sekarang, kita mengambil untuk diberikan bahwa apa pun yang kita inginkan untuk mewakili dalam beberapa cara yang terstruktur data dan sesuai untuk berbagai abstraksi yang menentukan jalur, file, protokol, pesan, markup, apapun.
Tapi sekali waktu ini wasn't benar. Aplikasi built-in kontrol karakter dan perangkat-pengolahan tertentu. Mati otak sistem yang diperlukan baik CR dan LF hanya punya abstraksi untuk merekam pemisah atau line terminator. CR diperlukan dalam rangka untuk mendapatkan teletype atau video display untuk kembali ke kolom satu dan LF (hari ini, NL, kode yang sama) diperlukan untuk mendapatkan itu untuk maju ke baris berikutnya. Saya kira ide untuk melakukan sesuatu yang lain dari dumping data mentah ke perangkat terlalu kompleks.
Unix dan Mac benar-benar ditentukan abstraksi untuk garis akhir, bayangkan itu. Sayangnya, mereka yang ditentukan yang berbeda. (Unix, ahem, yang datang lebih dulu.) Dan tentu, mereka menggunakan kode kontrol yang sudah "tutup" untuk S. O. P.
Karena hampir semua perangkat lunak operasi hari ini adalah keturunan dari Unix, Mac, atau operasi MS SW, kita terjebak dengan garis mengakhiri kebingungan.
NL berasal dari EBCDIC NL = x'15' yang secara logis akan dibandingkan dengan CRLF x'odoa ascii... hal ini menjadi jelas ketika physcally memindahkan data dari mainframe ke midrange. Coloquially (karena hanya arcane orang-orang yang menggunakan ebcdic) NL telah disamakan dengan baik CR atau LF atau CRLF