【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
我想知道CR LF(Windows),LF(Unix)和CR(Macintosh)换行类型之间的区别(如果可能,还带有示例)。
#1楼
实际上,实际上是关于文件中存储哪些字节。 CR
是用于回车(从打字机时代起)的字节码,而LF
用于换行的字节码。 它仅指代作为行尾标记放置的字节。
与往常一样,在Wikipedia上获取更多信息。
#2楼
CR和LF是控制字符,分别编码为0x0D
(十进制13)和0x0A
(十进制10)。
它们用于标记文本文件中的换行符。 如您所指出的,Windows使用两个字符CR LF序列。 Unix仅使用LF,而旧的MacOS(OSX之前的MacIntosh)使用CR。
伪历史的观点:
正如Peter所指出的 ,CR = 回车 ,LF =换行 ,这两个表达式都起源于旧的打字机/ TTY。 LF向上移动纸张(但保持水平位置不变),CR返回“托架”,以便键入的下一个字符将位于纸张的最左侧位置(但在同一行上)。 CR + LF两者都在做,即准备输入新行。 随着时间的流逝,代码的物理语义不再适用,并且由于内存和软盘空间非常宝贵,因此某些OS设计人员决定只使用其中一个字符,而彼此之间的交流并不很好。 -)
大多数现代的文本编辑器和面向文本的应用程序都提供选项/设置等,这些选项/设置允许自动检测文件的行尾约定并相应地显示它。
#3楼
基于ASCII或兼容字符集的系统分别使用LF(换行,0x0A,十进制10)或CR(回车,0x0D,十进制13)或CR后跟LF(CR + LF,0x0D 0x0A); 这些字符基于打印机命令:换行指示应将一行纸从打印机中送出,回车指示打印机托架应返回到当前行的开头。
这是细节 。
#4楼
这是一个很好的总结,我发现:
回车符(CR)字符( 0x0D
, \\r
)将光标移动到该行的开头,而无需前进到下一行。 在Commodore和早期Macintosh操作系统(OS-9和更早版本)中,此字符用作换行符。
换行(LF)字符( 0x0A
, \\n
)将光标向下移动到下一行而不返回到行首。 该字符在基于UNIX的系统(Linux,Mac OSX等)中用作换行符
行尾(EOL)序列( 0x0D 0x0A
, \\r\\n
)实际上是两个ASCII字符,是CR和LF字符的组合。 它将光标向下移动到下一行和该行的开头。 在大多数其他非Unix操作系统(包括Microsoft Windows,Symbian OS和其他操作系统)中,此字符用作换行符。
#5楼
CR-ASCII码13
LF-ASCII码10。
理论上CR将光标返回到第一个位置(在左侧)。 LF向下移动一行,将光标移入一行。 过去,这就是您控制打印机和文本模式监视器的方式。 这些字符通常用于标记文本文件中的行尾。 不同的操作系统使用不同的约定。 如您所指出的,Windows使用CR / LF组合,而OSX之前的Mac仅使用CR等。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3147387