Difference between CR LF, LF and CR line break types?
Difference between CR LF, LF and CR line break types?
I'd like to know the difference (with examples if possible) between CR LF (Windows), LF (Unix) and CR (Macintosh) line break types.
评论
CR and LF are ASCII and Unicode control characters while \r
and \n
are abstractions used in certain programming languages. Closing this question glosses over fundamental differences between the questions and perpetuates misinformation.
回答1
CR and LF are control characters, respectively coded 0x0D
(13 decimal) and 0x0A
(10 decimal).
They are used to mark a line break in a text file. As you indicated,
Windows uses two characters the CR LF sequence;
Unix only uses LF
and the old MacOS ( pre-OSX MacIntosh) used CR.
An apocryphal historical perspective:
As indicated by Peter, CR = Carriage Return and LF = Line Feed, two expressions have their roots in the old typewriters / TTY. LF moved the paper up (but kept the horizontal position identical) and CR brought back the "carriage" so that the next character typed would be at the leftmost position on the paper (but on the same line). CR+LF was doing both, i.e. preparing to type a new line. As time went by the physical semantics of the codes were not applicable, and as memory and floppy disk space were at a premium, some OS designers decided to only use one of the characters, they just didn't communicate very well with one another ;-)
Most modern text editors and text-oriented applications offer options/settings etc. that allow the automatic detection of the file's end-of-line convention and to display it accordingly.
回答
This is a good summary I found:
The Carriage Return (CR) character (0x0D
, \r
) moves the cursor to the beginning of the line without advancing to the next line. This character is used as a new line character in Commodore and Early Macintosh operating systems (OS-9 and earlier).
The Line Feed (LF) character (0x0A
, \n
) moves the cursor down to the next line without returning to the beginning of the line. This character is used as a new line character in UNIX based systems (Linux, Mac OSX, etc)
The End of Line (EOL) sequence (0x0D 0x0A
, \r\n
) is actually two ASCII characters, a combination of the CR and LF characters. It moves the cursor both down to the next line and to the beginning of that line. This character is used as a new line character in most other non-Unix operating systems including Microsoft Windows, Symbian OS and others.
TortoiseDiff显示出来的区别
001CarriageReturn.txt 换行符显示为<--
002LineFeed.txt 换行符显示为向下的箭头
003EndOfLine.txt 换行符显示为回车符号
LabVIEW Termination Characters
Carriage Return character \r
Line Feed character \n
End of line \r\n
作者:Chuck Lu GitHub |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2019-09-18 The implementation of iterators in C# and its consequences (part 1) Raymond Chen
2019-09-18 What is the use of c# “Yield” keyword ?
2019-09-18 What is the yield keyword used for in C#?
2019-09-18 Coroutine 协程
2018-09-18 beyond compare 比较文本 standard alignment VS unaligned
2015-09-18 左移运算符
2015-09-18 大小端以及字节序的问题 Endianness