Tôi chỉ không thể nhớ những cái đó. Vì vậy, cách đúng đắn để chấm dứt đúng cách các dòng ASCII cũ là gì?
Tôi chỉ không thể nhớ những cái đó. Vì vậy, cách đúng đắn để chấm dứt đúng cách các dòng ASCII cũ là gì?
Câu trả lời:
Tôi sẽ sử dụng từ ' r etur n ' để ghi nhớ, r xuất hiện trước n.
\n\r
và \r\n
giống nhau, không phải chúng có tác dụng tương tự sao? Bạn có thể chỉ cho tôi điểm khác biệt?
Nếu bạn đang sử dụng C #, bạn nên sử dụng Environment.NewLine
, theo MSDN, đó là:
Một chuỗi chứa "\ r \ n" cho các nền tảng không phải là Unix hoặc một chuỗi chứa "\ n" cho các nền tảng Unix.
Environment.NewLine
thì tốt. Tuy nhiên, nếu bạn đang viết mọi thứ theo định dạng rõ ràng, định dạng cũng có thể xác định dòng mới. Chẳng hạn, giao thức HTTP nói rằng bạn phải sử dụng \r\n
làm đầu cuối dòng cho các tiêu đề, v.v., bất kể nền tảng.
Dòng mới phụ thuộc vào hệ điều hành của bạn:
DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal)
Unix & Mac OS X: \n, 0A, 10
Macintosh (OS 9): \r, 0D, 13
Thêm chi tiết tại đây: https://ccrma.stanford.edu/~craig/utility/flip/
Khi nghi ngờ, hãy sử dụng bất kỳ trình xem / chỉnh sửa hex phần mềm miễn phí nào để xem cách tập tin mã hóa dòng mới của nó.
Đối với tôi, tôi sử dụng hướng dẫn sau để giúp tôi nhớ: 0D0A = \ r \ n = CR, LF = ca rr iage r eturn, li n e feed
0D0A
trái tim, nhưng vẫn nhầm lẫn giữa \r
và \n
.
Trình tự là CR (Trả về vận chuyển) - LF (Nguồn cấp dữ liệu). Ghi nhớ máy in ma trận? Chính xác. Vì vậy - thứ tự đúng là \ r \ n
Trong bất kỳ ngôn ngữ .NET, Environment.NewLine
sẽ thích hợp hơn.
Hãy cẩn thận với việc này bằng tay.
Trong thực tế tôi sẽ khuyên không nên làm điều này cả.
Trong thực tế, chúng ta đang nói về trình tự kết thúc dòng LTS dành riêng cho nền tảng.
Nếu bạn mở một tệp ở chế độ văn bản (tức là không phải nhị phân) thì các luồng sẽ chuyển đổi "\ n" thành LTS chính xác cho nền tảng của bạn. Sau đó chuyển đổi LTS trở lại "\ n" khi bạn đọc tệp.
Kết quả là nếu bạn in "\ r \ n" sang tệp windows, bạn sẽ nhận được chuỗi "\ r \ r \ n" trong tệp vật lý (có giao diện với trình chỉnh sửa hex).
Tất nhiên đây là nỗi đau thực sự khi chuyển tập tin giữa các nền tảng.
Bây giờ nếu bạn đang ghi vào một luồng mạng thì tôi sẽ làm điều này bằng tay (vì hầu hết các giao thức mạng gọi điều này một cách cụ thể). Nhưng tôi sẽ đảm bảo luồng không thực hiện bất kỳ giải thích nào (vì vậy chế độ nhị phân là phù hợp).
\r\n
cho Windows sẽ làm tốt
\n
cũng hoạt động tốt trên windows, bao gồm cả phiên bản Notepad mới nhất.
Từ Wikipedia (bạn có thể đọc cái nào đúng cho HĐH của bạn tại bài viết đó):
Các hệ thống dựa trên ASCII hoặc một bộ ký tự tương thích sử dụng riêng lẻ (Nguồn cấp dữ liệu, '\ n', 0x0A, 10 theo số thập phân) hoặc CR (Trả về vận chuyển, '\ r', 0x0D, 13 theo số thập phân) hoặc CR theo sau LF (CR + LF, '\ r \ n', 0x0D0A).
\r\n
Thật lạ khi nói tôi nhớ nó vì nó trái ngược với máy đánh chữ tôi đã sử dụng.
Chà, nếu bình thường thì tôi không cần phải nhớ nó ...:-)
Trong máy đánh chữ khi bạn hoàn thành để số hóa dòng bạn sử dụng cần quay trở lại vận chuyển , trước khi thực hiện cuộn trống, dòng mới và sau khi cho phép bạn vận hành thủ công trở lại vận chuyển .
Bạn có thể nghe từ bản ghi này từ freesound.org âm thanh của việc nạp giấy lúc đầu và vào khoảng -1: 03 giây kể từ khi kết thúc, sau tiếng chuông cảnh báo kết thúc âm thanh của tiếng trống cuộn và sau một trong những chiếc xe trở về.