CR和LF

 


声明

本文转自:CR和LF - 田野与天 - 博客园 (cnblogs.com)

以下为正文

现在的电脑操作系统主要有windows、unix/linux、macos这三种。

首先,

  回车:英文(carriage return ),缩写CR

  换行:英文(line  feed),缩写LF

在window中,在一个文本结尾常常使用“《回车》《换行》”,"<CR><LF>"或者说是“\r\n”来表示一行结束

在unix和linux系统中,使用的是“《换行》”,"<LF>"或者说是"\n"来表示一行结束

在macos中,使用的是“《回车》”,"<CR>"或者说是"\r"来表示一行结束

 

然后,让我们看一下ASCII码表

这三者不统一会造成啥问题呢?

最多的就是,当一个文本文件从一个系统移动到另外一个系统的时候,会出现问题。举几个小的例子吧:

 

例子一:下面的浅色字体(\r\n)表示其实用户并不可见

  在windows下有一个文件,内容是这样的:

  

  first line\r\n

  second line\r\n

  third line\r\n 

 

这个文件到了unix/linux下的话,就会出问题,因为unix/linux只认识"\n",不认识"\r",所以用vim打开以后,文件是这样的

  

  我是第一行^M\n

  我是第二行^M\n

  我是第三行^M\n

用户就会莫名看到多出来了一些^M在文件的末尾,不知道的以为文件乱码了,其实并不是的。

 

补充

Linux下去掉^M的四种方法 - 习惯沉淀 - 博客园 (cnblogs.com)

 

posted @   习惯沉淀  阅读(487)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2016-11-25 linux, configure --prefix=/有什么用
2016-11-25 Java开发中的23种设计模式详解(转)
2016-11-25 Linux安装gcc编译器详解
点击右上角即可分享
微信分享提示