随笔 - 809  文章 - 0 评论 - 144 阅读 - 770万

image

image

image

image

  • "LF" 的英文全称是"Line Feed",意思是“行进",用于表示 开始下一个行;
  • CR的英文全称是Carriage Return,回车,表示移动到当前行的开始位置;

以前都是打字机,你可以理解为打字机的那个打头的位置,Line Feed,就是打字头向下拨动一行,Carriage Retrurn,就是将打头拨到当前行的开始位置,后来有了电脑,打头你可以理解为鼠标的光标了;

好了,接下来说作者的想法,为什么 会用\r \n,来表示转义字符;

  1. Line Feed ----> 作者取个\n 这个n来源于line,表示 行的意思,而不是后人误解的newLine,作者是想让读者看到n,就联想到是 行 是换一行的意思;n来源于line 这个英文,有些人为了方便记忆,把\n 理解为“newline”的缩写,我认为newLine不但不好记,还又新增了一个词汇,增加复杂度;与new没有毛线关系;作者 更想表达是line,让你看到n就想到line,想到换行;

  2. Carriage Return ---> 这个回车,如何来表示回车呢,大家都知道 return是最容易想到的一个词,故用r,即\r,看到r就联想到 return,就想到回车;

不同操作系统的差异

  1. windows和dos下的换行用了2个字符,且有顺序,是\r + \n,对应Delphi里的是#13 #10,或直接用sLineBreak可以跨平台屏蔽差异;记住windows下是先回车再换行,即:r + n; 所以每行结尾是“<回车><换行>”,即“\r\n”;
  2. UNIX/Linux采用换行符(LF)表示下一行; 每行结尾只有“<换行>”,即“\n”
  3. MAC OS系统则采用回车符(CR)表示下一行; 每行结尾是“<回车>”,即“\r”。

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

Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix下打开的话,在每行的结尾会多车一个^M字符。 Dos和windows采用回车+换行CR/LF表示下一行,即^M$($不是换行符的表示,换行符没有表示出来,$是文本结束EOF的表示)

现在好多文本工具都提供了转换功能,如notepad2:

image

image

posted on   del88  阅读(3214)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2013-05-13 DBGRIDEH 进度条、百分比、列的显示格式(以后很有用途)
点击右上角即可分享
微信分享提示