不可见字符CR和LF的故事

orient4年前运维问题1149

一、名词解释

      CR:Carriage Return,对应ASCII中转义字符\r,表示回车

      LF:Linefeed,对应ASCII中转义字符\n,表示换行

      CRLF:Carriage Return & Linefeed,\r\n,表示回车并换行

二、使用场景

      在Windows操作系统中,采用两个字符来进行换行,即CRLF;Unix/Linux/Mac OS X操作系统采用单个字符LF来进行换行;在MacIntosh操作系统(即早期的Mac操作系统)采用单个字符CR来进行换行。

三、来源追溯

      据野史记载,在很久以前的机械打字机时代,CR和LF分别具有不同的作用:LF会将打印纸张上移一行位置,但是保持当前打字的水平位置不变;CR则会将“Carriage”(打字机上的滚动托架)滚回到打印纸张的最左侧,但是保 持当前打字的垂直位置不变,即还是在同一行。

      当CR和LF组合使用时,则会将打印纸张上移一行,且下一个打字位置将回到该行的最左侧,也就是我们今天所理解的换行操作。

      随着时间的推移,机械打字机渐渐地退出了历史舞台,当初的纸张变成了今天的显示器,打字机的按键也演变为了如今的键盘。在操作系统出现的年代,受限于内存和软盘空间的不足,一些操作系统的设计者决定采用单个字符来表示换行符,如Unix的LF、MacIntosh的CR。他们的意图都是为了进行换行操作,只是当初并没有一个国际标准,所以才有这样字符上的不同。


标签: 回车 换行

相关文章

SSH工具引起的应用乱码解决

 一、问题背景       部署在Weblogic上的客户端应用,反馈通过SSH工具查询出的日志和应用界面中的部分字体(主要是主机下传的报文数据)变成...

Excel查找数据公式

一、提取两列数据相同的数据:=INDEX(左侧列,SMALL(IF(COUNTIF(右侧列,左侧列数据区域)>0,ROW(左侧列数据区域),大于总数据的一个数字), ROW(A1)))&...

调用JNI时引起堆外内存泄漏问题的排查

问题表现:最近项目中有通过JNI调用linux下动态库的场景,该动态库被多线程并发高频调用时,会造成操作系统内存的急剧上升,最终java进程会被强制下掉。排查过程:通过top命令查看进程对资源的使用情...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。