jw013 chỉ ra trong một câu trả lời khác rằng Mac hiện đã chuyển sang tiêu chuẩn * nix \n
.
Trước đây, Mac OS là \r
(trả lại vận chuyển, 13 / 0x0D); Windows là \r\n
và * nix là \n
(linefeed, 10 / 0x0A). Tôi không chắc chắn cho các hệ thống tối nghĩa hơn, nhưng tôi đoán gần như mọi thứ khác cũng vậy \n
. Sự khác biệt đến từ thời của teletype khi \n
chuyển sang dòng tiếp theo và \r
sẽ di chuyển đầu trở lại bắt đầu (bên trái) của trang, khá giống với những gì người ta phải làm (thủ công) với một máy đánh chữ trở lại ngày. Lưu ý rằng trong một thiết bị đầu cuối trên Linux, \r
vẫn di chuyển con trỏ đến đầu dòng hiện tại thay vì chuyển xuống dòng tiếp theo, phù hợp với việc sử dụng teletype của nó. Tôi đã xem lịch sử chi tiết hơn về lý do tại sao mỗi hệ thống chọn loại dòng riêng, vì vậy tôi chắc chắn bạn có thể tìm kiếm thêm chi tiết.
Dù sao, trong các vấn đề thực tế, hầu hết các biên tập viên (trừ notepad) có thể đối phó với bất kỳ loại nào trong ba loại, và có nhiều cách để chuyển đổi giữa chúng. Một số công cụ sao chép từ xa (ví dụ: ftp và có lẽ các chương trình tương tự khác) thậm chí chuyển đổi trong suốt sang các loại dòng chính xác cho đích khi vận chuyển tệp ở chế độ văn bản. Và tôi đã đọc ngày hôm nay trên bài đăng SO 1 rằng gcc thực sự chuyển đổi \n
thành dòng kết thúc thích hợp cho hệ thống mà nó đang biên dịch.
Trích dẫn:
Các ký tự kết thúc dòng khác nhau không quan trọng, giả sử tệp được mở ở chế độ văn bản, đó là những gì bạn nhận được trừ khi bạn yêu cầu nhị phân. Chương trình được biên dịch sẽ viết ra điều chính xác cho hệ thống được biên dịch cho.