本文作者:DurkBlue

电传打字机回车符CR和换行符LF在物联网的介绍推荐

DurkBlue 昨天 25
电传打字机回车符CR和换行符LF在物联网的介绍摘要:         回车(CR)和换行(LF)起源于电传打字机,CR用于将打印头定位在左边界,LF用于将...

        回车(CR)和换行(LF)起源于电传打字机,CR用于将打印头定位在左边界,LF用于将纸向下移动一行。在不同的操作系统中,换行方式有所不同:Unix/Linux使用LF,Windows使用CRLF,Mac使用CR。在跨平台文件操作中,不统一的换行符可能导致显示问题。可以使用dos2unix和unix2dos工具进行格式转换。在代码协作中,推荐使用LF作为统一的换行符。

        在编程语言当中CR回车符用\r表示 LF换行用\n 表示

       

    ”回车”(carriage return)和”换行”(line feed)这两个概念的来历和区别


        这两种概念来源于一种叫做电传打字机(Teletype Model 33)的机器,”回车”意思是告诉打字机把打印头定位在左边界;”换行”意思是告诉打字机把纸向下移一行。


        \r (Carriage Return):将光标移动到行首而不前进到下一行<CR>

        \n (Line Feed):将光标向下移动到下一行,而不返回到该行的开头。在 unix 环境上 \n 意味着移动到行首。<LF>

        \r\n (End Of Line): \r 和 \n的结合 <CR><LF>


        Unix/Linux系统里,每行结尾只有<换行>,即\n

        Windows系统里面,每行结尾是<回车><换行>,即\r\n;

        Mac系统里,每行结尾是<回车>。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。


        以 CRLF 作为换行符的文本文件经常被称作 DOS 格式文件, 而以 LF 作为换行符文本文件, 被称作 UNIX 格式文件


        CRLF 还是 LF

        如果进行跨平台的协同工作, 特别是使用 git 进行代码版本管理, 最好统一换行符, 建议使用 LF(即\n) 作为换行符


        

      dos 和 unix 的相互转换

dos 格式文件转换成 Unix 格式文件, 就是把 CRLF 替换为 LF; unix 格式文件转换成 dos 格式文件, 就是把 LF 替换为 CRLF

        


补充知识


 CR(Carriage Return)表示回车  LF(Line Feed)表示换行
'\r'是回车CR,前者使光标到行首,(carriage return)ASCII码(0x0D)
 '\n'是换行LF,后者使光标下移一格,(line feed)    ASCII码 (0x0A) 
 \r 是回车,return 
\n 是换行,newline


Dos和Windows采用回车+换行(CR+LF)表示下一行

而UNIX/Linux采用换行符(LF)表示下一行

苹果机(MAC OS系统)则采用回车符(CR)表示下一行

Windows下编写的Shell脚本,直接放到linux/unix下执行会报错,就是因为行结束符不一样导致的。


Unix系统里每行结尾:       “<换行>”,      <LF>,    即“\n”;     0x0a

Windows系统每行结尾:“<回车><换行>”,<CR><LF>,即“\r\n”,0x0d 0x0a;

Mac系统里每行结尾:      “<回车>”,         <CR>       即“\r”,   0x0d。


由于dos风格的换行使用\r\n,把这样的文件上传到unix,有些版本的vi不能识别\r,所以vi显示时在行尾会出现^M出来,但是有些就能识别\r\n,正常显示回车换行。



此篇文章由DurkBlue博客申请发布,转载吧请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 昨天
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享