[时间:2016-07] [状态:Open]

本文主要介绍“回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。

CR/LF的来历

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的TTY概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

CR/LF的区别

Unix系统里,每行结尾只有“”,即"\n";Windows系统里面,每行结尾是“”,即“\n\r”;Mac系统里,每行结尾是“”,即"\r"。一个直接后果是,Unix/Mac系统下的文件在 Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

在文本处理中, CR、LF,CR/LF是不同操作系统上使用的换行符。

  • Dos和windows采用回车+换行CR/LF表示下一行
  • UNIX/Linux采用换行符LF表示下一行
  • 苹果机(MAC OS系统)则采用回车符CR表示下一行
  • CR用符号'\r'表示, 十进制ASCII代码是13, 十六进制代码为0x0D;LF使用'\n'符号表示, ASCII代码是10, 十六制为0x0A。
    所以Windows平台上换行在文本文件中是使用0d 0a两个字节表示, 而UNIX和苹果平台上换行则是使用0a0d一个字节表示。
    一般操作系统上的运行库会自动决定文本文件的换行格式.。如一个程序在windows上运行就生成CR/LF换行格式的文本文件,而在Linux上运行就生成LF格式换行的文本文件。
    在一个平台上使用另一种换行符的文件文件可能会带来意想不到的问题, 特别是在编辑程序代码时。有时候代码在编辑器中显示正常, 但在编辑时却会因为换行符问题而出错。
    很多文本/代码编辑器带有换行符转换功能,使用这个功能可以将文本文件中的换行符在不同格式单互换。
    在不同平台间使用FTP软件传送文件时,在ascii文本模式传输模式下,一些FTP客户端程序会自动对换行格式进行转换。经过这种传输的文件字节数可能会发生变化。如果你不想ftp修改原文件,可以使用bin模式(二进制模式)传输文本。

原文地址: http://www.cppblog.com/prayer/archive/2009/08/19/93854.html

转载于:https://www.cnblogs.com/tocy/p/about-cr_lf-diff.html

CR, LF, CR/LF 回车 换行相关推荐

  1. Linux—CRLF/CR/LF等回车换行符问题详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   在开发阶段,开发环境测完的配置文件(页面化管理)和shell脚本在上生产时,出现了字符和变量(变量从配置文件中获取)拼接缺失等莫 ...

  2. Windows、Linux和MAC的CR, LF, CR/LF换行符

    在文本处理中, CR, LF, CR/LF是不同操作系统上使用的换行符. Dos和windows: 采用回车+换行CR/LF表示下一行.  UNIX/Linux  : 采用换行符LF表示下一行.  M ...

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

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

  4. CR, LF, CR/LF区别与关系

    一:回车"(Carriage Return)和"换行"(Line Feed)起源 首先,弄清两个概念: 回车CR-将光标移动到当前行的开头.                ...

  5. idea 左下角 CRLF,LF,CR的意思和区别

    一:见图说话. 二:CRLF,LF,CR的意思和区别. CRLF: 是"carriage return/line feed",意思就是回车换行.这是两个ASCII字符,分别排在第十 ...

  6. 【转载】 C++中回车换行(\n\r)和换行(\r)的区别

    原文:http://blog.csdn.net/xiaofei2010/article/details/8458605 windows下的点一下回车,效果是:回车换行,就是\r\n unix系统下的回 ...

  7. shell脚本回车换行_终于搞懂了回车与换行的区别

    关于换行和回车其实平时我们不太在意,所以关于两者的区别也不太清楚,在平时开发时可能会遇到一些文件处理的问题,放到不同的操作系统上出现各种坑.那么回车和换行到底有哪些区别呢?今天咱们就来总结一下. 1. ...

  8. VB.NET回车/换行组合符

    成员 常量 等效 说明 CrLf vbCrLf Chr(13) + Chr(10) 回车/换行组合符. Cr vbCr Chr(13) 回车符. Lf vbLf Chr(10) 换行符. NewLin ...

  9. 扫码器:壹码通(EMT 6621)二维码带多个回车换行处理

    摘要:二维码运用越来越广泛了,目前在医院中一个二维码可以串联多个系统,二维码的内容也可以设置一些特殊字符去达成系统便捷性.本次遇到为二维码中开头内置了回车和空格,在程序判断为回车(KEY_ENTER) ...

  10. 回车换行符 crlf 那点事

    不同的操作系统回车换行符定义是不一样的,如果你跟我一样记不住,crlf几个字段的含义的话,记录下来就非常有必要了 win        \r\n  CRLF ASCII 13 carriage ret ...

最新文章

  1. 需求用例分析之一:异常流
  2. javascript注意点(1)
  3. grunt使用小记之开篇:grunt概述
  4. Android 最新左右可见上下页的banner实现demo
  5. 看完这篇文章,会让你对电容的作用更明白!
  6. 中国数据库OceanBase登顶之路
  7. 如何学习编程?顺便介绍些好的网站
  8. mysql登录跳转不了_Session过期后实现自动跳转登录页面
  9. Proteus8.9 VSM Studio PIC编译器仿真PIC16F887A_系列a02_PIC_GPS数据接受反馈HTC仿真
  10. R语言使用mad函数、median函数、mean函数计算向量数据的中位数绝对偏差、中位数、均值、数据中包含NA值的情况
  11. [电路笔记]二端口网络
  12. related knowledge points about protein
  13. 爬虫很调皮?来看看反爬虫收拾爬虫的法子有哪些!
  14. win10实现debug
  15. php artisan dumpautoload,artisan 命令使用总结
  16. goland中出现declared but not used 如何解决
  17. thisis incompatible with sql_mode=only_full_group
  18. FATE学习:配置文件解析及V1/V2版本对比
  19. 小米手机证书信任设置在哪里_小米手机 MIUI 12 测试新隐私保护:可设置每个应用是否允许访问相册和信息存储目录...
  20. UI(十)模拟服务器配置

热门文章

  1. Linux 平台下 Tomcat 的安装与优化
  2. Google 发布首款微信小程序,各种灵魂画作出没!
  3. Docker 更新版本
  4. vue-cli的项目中关于axios的全局配置,结合element UI,配置全局loading,header中做token传输...
  5. JS 100内与7相关的数
  6. 七种机器内部排序的原理与C语言实现,并计算它们的比较次数与移动次数。
  7. android launcher3 home页简易分析
  8. 《第三次浪潮》的体会!
  9. GitHub上IOS开源项目
  10. C# Winform App 获取当前路径