对于CRLF这个词来说,相信搞开发的应该都不会陌生,其意思是回车换行。

但是对于这个普遍解释,我还有以下两点疑问:

1.为什么CR代表回车,LF代表换行?

2.回车和换行到底是什么东西,'\r','\n'又是什么东西?

答1:

关于为什么用CRLF代表回车换行,则要提一下一个历史问题,相信大家在电视上看美国一些老电影的时候都看过打字员使用打字机的场景,当打字到一行尾部的时候,机器会有两个操作,一个是打印的针头会调回到开始处;另一个是打印纸同时会向下移动一行。对于前者就叫做Carriage Return(Carriage Return可以翻译为机器滑动的部分回到开始处)简写即为CR;而后者就叫做Line Feed(Line Feed有行满的意思),简称LF。所以在没有计算机之前,需要同时使用CRLF来表示起一个新行。

答2:

1中提到的回车和换行可以看做是两个操作,是两个动词,通过两个动作实现了换行,但是当出现计算机后,我们在写文本文件的时候,就需要在一行的结尾处做个标记来指示该换行了,所以Windows系统就沿用了打字机时代的名词,使用“回车符”+“换行符”表示到达当前行的结尾处。然而在计算机发展的早期存储设备相对昂贵,所以有的计算机专家认为用两个字符(回车+换行)表示行尾过于浪费,所以Unix系统只采用了“换行符”,而Mac系统只采用了“回车符”。

因为'\r','\n'本身是一种语法的表示,所以此处以java语法为背景进行说明,其他语言的含义本质是相似,可类比理解。Java中有8个基本类型,其中一个为char型,而char型的常量有三种表示方式:1.由单引号括起的单个字符;2.由单引号括起的\+字符,例如‘\r’、'\n'、'\t';3.由单引号括起的\u+4位16进制,例如'\u000d','\u000a','\u0009'。其中2类字符表示的含义不再是'\'后的字符本身,而是表示一个新的意思,'\'称作转义字符。由于有的字符能够显示在屏幕上,有的不能,所以需要一种方式来表示那种无法显示在屏幕上的字符,采用转义字符('\')就是为了这个目的。而在我所知道的语言的中,'\r'都表示“回车符”,'\n'都表示"换行符"。所以'\r'、'\n'是回车符和换行符的一种符号表示。

如果浏览器的控制台中书写如下Javascript代码:alert("我是第一行\n我是第二行"),会看到此行文字分两行显示,读者可自行尝试一下。
————————————————
版权声明:本文为CSDN博主「piezi.liu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lunda5/article/details/40963045

CRLF是什么东西?相关推荐

  1. linux cr换行符,回车符CR和换行符LF

    我在Windows电脑上做开发时,经常会见到这个现象.代码从远程git仓库clone下来后,然后npm install安装依赖后,打开任意一个代码文件会看到每行结尾处有如下报红: 将鼠标指针停留在行尾 ...

  2. Git :LF will be replaced by CRLF in readme.txt的原因与解决方案

    今天用Git bash遇到的问题,看了几个回答之后发现一个比较有价值的,给大家分享一下,其他很多的回答都有很或多或少存在一些弊端. 原回答地址在stackoverflow上,附上链接--http:// ...

  3. Git warning: LF will be replaced by CRLF in readme.txt的原因和解决方案

    PS: 千万不要随意删.git文件!!! 建议保持自动转换true 今天用Git bash遇到的问题,看了几个回答之后发现一个比较有价值的,给大家分享一下,其他很多的回答都有很或多或少存在一些弊端. ...

  4. 细看CRLF注入***的原理和其防范措施

    细看crlf注入***的原理和其防范措施 ------------------------------------------------------------------------------- ...

  5. IDEA换行CRLF, LF, CR的解释和默认设置

    在window下开发有一个大坑,就是换行默认是CRLF,也就是回车换行,但是Linux下只有换行LF,这样代码提交后,会出现编译问题,所以最好的办法是在IDEA下设置默认为LF. 首先我们先介绍CRL ...

  6. Git warning:LF will be replaced by CRLF in readme.txt的原因与解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 今天用Git bash遇到的问题,看了几个回答之后发现一个比较有价值的,给大家分享一下,其他很多的回答都有很或多或少存在一些弊 ...

  7. 中label换行问题_如何巧妙处理 Git 多平台换行符问题(LF or CRLF)

    选自<旷世的忧伤> 作者:旷修 http://blog.konghy.cn/2017/03/19/git-lf-or-crlf/ 禁止二次转载 自从工作以后,基本上没有接触过 Window ...

  8. Git最好的CRLF(回车,换行)处理策略是什么?

    我尝试使用CRLF结束行提交文件,但失败了. 我花了整整一天的时间在我的Windows计算机上尝试不同的策略,几乎被迫停止尝试使用Git而是尝试使用Mercurial . 每个答案只能分享一个最佳实践 ...

  9. Git 多平台换行符问题(LF or CRLF)

    2019独角兽企业重金招聘Python工程师标准>>> 自从工作以后,基本上没有接触过 Windows 系统,偶尔使用 Windows 也是因为要写文档,Linux 下勉强可以用 W ...

最新文章

  1. 人脸、人眼检测与跟踪
  2. [转]EOS智能合约 私链激活 基本操作
  3. Linux环境下Redis集群实践
  4. JDK 8 SummaryStatistics类
  5. [react] 举例说明什么是高阶组件(HOC)的属性代理
  6. Java并发编程(04):线程间通信,等待/通知机制
  7. python中iter函数_Python iter()函数用法详解
  8. IIS组件搭建ftp服务器
  9. c语言如何答应出数所在数组的下标_零基础学C语言——数组
  10. docker安装部署和常用命令
  11. 为什么很少人学汇编_要想精通C语言,必须先学习汇编吗
  12. PHP使用redis防止大并发下二次写入
  13. html em vw,rem em 与vh vw的用法简单介绍
  14. 蒸汽管道图纸符号_管道设备表常用符号.ppt
  15. 在spyder中设置缩进对齐线提示
  16. 牛顿迭代法求解开根号、泰勒展开式求解arctan及cordic的原理
  17. 社区智能健康手环方案/APP/小程序/项目
  18. sqli-labs靶场Less-20~22 Cookie注入
  19. 基于单片机自行车自动防盗报警系统设计-基于单片机温度监测监控报警系统设计-基于单片机智能无线病床呼叫系统设计-基于单片机四路红外遥控开关电路设计【设计资料转发分享】
  20. 使用 ffmpeg批量给图片加水印

热门文章

  1. linux重启java程序
  2. 使用Clion刷LeetCode
  3. 一直被模仿,从未被超越?从“小作坊”到世界五百强,小米做到了
  4. win10创建软链接
  5. [推荐系统]推荐系统概述
  6. pfsense修改密码的两个方法
  7. 手把手演示Ngnix+Tomcat实现动静分离
  8. 申请Azure第三方登录
  9. CSS中相对定位与绝对定位
  10. 前几天面了个30岁的测试员,年薪50w问题基本都能回答上,应该刷了不少八股文···