Saya ingin tahu perbedaan (dengan contoh jika mungkin) antara CR break line (LF) (Windows), LF (Unix) dan CR (Macintosh).
line-breaks
eozzy
sumber
sumber
\n
biasanya diwakili oleh linefeed, tetapi tidak harus linefeed.\r
dan\n
merupakan abstraksi yang digunakan dalam bahasa pemrograman tertentu. Menutup pertanyaan ini menyoroti perbedaan mendasar antara pertanyaan dan melanggengkan kekeliruan informasi.\n
tidak berarti hal yang sama di semua bahasa pemrograman.Jawaban:
Benar-benar byte yang disimpan dalam file.
CR
adalah bytecode untuk carriage return (dari zaman mesin tik) danLF
juga, untuk umpan baris. Itu hanya mengacu pada byte yang ditempatkan sebagai penanda end-of-line.Informasi lebih lanjut, seperti biasa, di wikipedia .
sumber
CR
adalah karakter pelarian\r
danLF
adalah karakter pelarian\n
. Selain itu, Wikipedia: Baris Baru .CR and LF
- kata sederhana hanya ujung baris dan baris baru sesuai dengan tautan ini , apakah ini benar?CR dan LF adalah karakter kontrol, masing-masing diberi kode
0x0D
(13 desimal) dan0x0A
(10 desimal).Mereka digunakan untuk menandai jeda baris dalam file teks. Seperti yang Anda tunjukkan, Windows menggunakan dua karakter urutan CR LF; Unix hanya menggunakan LF dan MacOS lama (pra-OSX MacIntosh) menggunakan CR.
Perspektif historis apokrip:
Seperti ditunjukkan oleh Peter , CR = Carriage Return dan LF = Line Feed , dua ekspresi berakar pada mesin ketik lama / TTY. LF memindahkan kertas ke atas (tetapi menjaga posisi horisontal tetap sama) dan CR membawa kembali "carriage" sehingga karakter berikutnya yang diketik akan berada pada posisi paling kiri di atas kertas (tetapi pada baris yang sama). CR + LF melakukan keduanya, yaitu bersiap untuk mengetik baris baru. Seiring berjalannya waktu oleh semantik fisik kode tidak berlaku, dan karena ruang memori dan floppy disk di premium, beberapa perancang OS memutuskan untuk hanya menggunakan salah satu karakter, mereka hanya tidak berkomunikasi dengan baik satu sama lain; -)
Sebagian besar editor teks modern dan aplikasi berorientasi teks menawarkan opsi / pengaturan, dll. Yang memungkinkan deteksi otomatis konvensi akhir file dan untuk menampilkannya.
sumber
CR and LF
- kata sederhana hanya ujung baris dan baris baru sesuai dengan tautan ini , apakah ini benar?CR+LF
) dapat ditampilkan dengan dua baris baru pada sistem lain. Agaknya editor yang menampilkan teks mendukung Carriage Return dan Line Feed sebagai pembatas baris baru, dan karenanya dapat membuat 2 baris di mana 1 dimaksudkan. Jadi sementaraCR+LF
mungkin yang paling kompatibel, saya tidak berpikir itu tanpa masalah.Ini adalah ringkasan bagus yang saya temukan:
Karakter Carriage Return (CR) (
0x0D
,\r
) memindahkan kursor ke awal baris tanpa memajukan ke baris berikutnya. Karakter ini digunakan sebagai karakter baris baru di sistem operasi Commodore dan Early Macintosh (OS-9 dan yang lebih lama).Karakter Umpan Garis (LF) (
0x0A
,\n
) memindahkan kursor ke baris berikutnya tanpa kembali ke awal baris. Karakter ini digunakan sebagai karakter baris baru dalam sistem berbasis UNIX (Linux, Mac OSX, dll)Urutan End of Line (EOL) (
0x0D 0x0A
,\r\n
) sebenarnya adalah dua karakter ASCII, kombinasi dari karakter CR dan LF. Ini memindahkan kursor ke baris berikutnya dan ke awal baris itu. Karakter ini digunakan sebagai karakter baris baru di sebagian besar sistem operasi non-Unix termasuk Microsoft Windows, Symbian OS, dan lainnya.Sumber
sumber
Karena tidak ada jawaban yang menyatakan hal ini, dirangkum secara ringkas:
Pengembalian Carriage (MAC pre-OSX)
Line Line (Linux, MAC OSX)
Pengembalian Carriage dan Line Line (Windows)
Jika Anda melihat kode ASCII dalam format yang aneh, mereka hanyalah angka 13 dan 10 dalam radix / basis yang berbeda, biasanya basis 8 (oktal) atau basis 16 (heksadesimal).
http://www.bluesock.org/~willg/dev/ascii.html
sumber
Jeff Atwood memiliki posting blog baru-baru ini tentang ini: The Great Newline Schism
Inilah esensi dari Wikipedia :
sumber
<CR><CR><LF>
- jadi tentu saja saya bereksperimen hanya dengan satu<CR>
. Aku mengirim<CR><LF>A
setelah garis panjang, dan Anda bisa mendengar yangA
dicetak sebelum kereta sepenuhnya kembali.<CR><CR>
dan mengetikkan jumlah spasi yang benar, kemudian mencetak kembali kata yang sama: bentuk huruf tebal primitif.CR - ASCII kode 13
LF - ASCII kode 10.
Secara teoritis CR mengembalikan kursor ke posisi pertama (di sebelah kiri). LF mengumpankan satu baris dengan memindahkan kursor satu baris ke bawah. Ini adalah bagaimana di masa lalu Anda mengontrol printer dan monitor mode teks. Karakter-karakter ini biasanya digunakan untuk menandai akhir baris dalam file teks. Sistem operasi yang berbeda menggunakan konvensi yang berbeda. Seperti yang Anda tunjukkan Windows menggunakan kombinasi CR / LF sementara Mac pra-OSX hanya menggunakan CR dan sebagainya.
sumber
Berikut detailnya .
sumber
Keadaan menyedihkan dari "pemisah rekor" atau "terminator garis" adalah warisan zaman kegelapan komputasi.
Sekarang, kita anggap remeh bahwa apa pun yang ingin kita wakili adalah data terstruktur dan sesuai dengan berbagai abstraksi yang mendefinisikan garis, file, protokol, pesan, markup, apa pun.
Tetapi pada suatu waktu ini tidak sepenuhnya benar. Aplikasi karakter kontrol bawaan dan pemrosesan khusus perangkat. Sistem otak-mati yang membutuhkan CR dan LF sama sekali tidak memiliki abstraksi untuk pemisah rekaman atau terminator saluran. CR diperlukan untuk mendapatkan tampilan teletype atau video untuk kembali ke kolom satu dan LF (hari ini, NL, kode yang sama) diperlukan untuk membuatnya maju ke baris berikutnya. Saya kira ide melakukan sesuatu selain membuang data mentah ke perangkat itu terlalu rumit.
Unix dan Mac sebenarnya menentukan abstraksi untuk garis akhir, bayangkan itu. Sayangnya, mereka menentukan yang berbeda. (Unix, ahem, yang lebih dulu.) Dan tentu saja, mereka menggunakan kode kontrol yang sudah "dekat" dengan SOP
Karena hampir semua perangkat lunak kami saat ini adalah turunan dari Unix, Mac, atau MS yang mengoperasikan SW, kami terjebak dengan kebingungan garis akhir.
sumber
NL berasal dari EBCDIC NL = x'15 'yang secara logis akan dibandingkan dengan CRLF x'odoa ascii ... ini menjadi jelas ketika memindahkan data secara fisik dari mainframe ke midrange. Bahasa sehari-hari (karena hanya orang-orang misterius yang menggunakan ebcdic) NL telah disamakan dengan CR atau LF atau CRLF
sumber