CR、 LF、CRLF的区别

一、CR LF CRLF的区别

CR (Carriage Return),LF (Line Feed),以及 CRLF (Carriage Return Line Feed) 是用于表示文本中换行的控制字符,它们在不同的操作系统和环境中有着不同的使用习惯:

CR (Carriage Return)

含义:CR 字符的历史可以追溯到打字机时代,意味着将打印头返回到行的起始位置,但不移动到下一行。在 ASCII 编码中,CR 对应的值是 \r 或者十进制的 13,十六进制的 0x0D。
使用场景:早期的 Macintosh 系统(Mac OS 经典版本)使用 CR 作为行结束符。

LF (Line Feed)

含义:LF 字符的作用是使打印头移动到下一行,但不进行回车操作。在 ASCII 编码中,LF 对应的值是 \n 或者十进制的 10,十六进制的 0x0A。
使用场景:Unix 和类 Unix 系统(包括 Linux、macOS 的较新版本)使用 LF 作为行结束符。

CRLF (Carriage Return Line Feed)

含义:CRLF 是 CR 和 LF 两个字符的组合,先执行回车操作(回到行首),再执行换行操作(移动到下一行)。在 ASCII 编码中,CRLF 表示为 \r\n。
使用场景:Windows 操作系统以及基于 DOS 的系统使用 CRLF 作为行结束符。
区别总结:

功能差异:CR 是回到行首,LF 是换到下一行,CRLF 则是先回到行首再换到下一行,虽然在现代电子文本中回到行首的操作通常是多余的,因为LF本身隐含了这个动作。
操作系统兼容性:不同的操作系统采用了不同的标准,导致文本文件在不同系统间传输时可能需要转换格式以避免显示异常。
文件大小:使用CRLF的文件相比只使用LF的文件,每行会多占用一个字节。
文本处理:在处理文本文件时,了解这些差异对于正确解析和显示文件内容至关重要,特别是在进行跨平台开发时。

二、\n和\r的区别

\n(换行,Newline)和\r(回车,Carriage Return)都是控制字符,用于表示文本中的行结束或换行。它们之间的区别在于历史起源和不同操作系统中的使用方式:

\n (Line Feed, 换行)

起源:\n 起源于电传打字机,作用是使打印头移动到下一行的开始位置,但不涉及把打印头移回行首的动作。
使用:在Unix、Linux、macOS(自macOS X开始)等操作系统及其衍生系统中,\n 单独用作行结束符。这意味着当遇到\n时,光标会移动到当前行的下一行,但不会额外执行回车动作。

\r (Carriage Return, 回车)

起源:\r 也是来自电传打字机时代,它的作用是将打印头移动到当前行的最左侧(即行首),但不换到下一行。
使用:早期的Macintosh系统使用\r作为行结束符。而在Microsoft Windows系统中,虽然\r单独并不作为行结束符使用,但在CRLF(\r\n)组合中,\r是先执行的部分,意在回车到行首,然后\n执行换行到下一行。
总结:

\n 主要负责移动到下一行,而\r则负责回到当前行的开始位置。
在大多数现代文本处理场景中,尤其是互联网和跨平台编程中,\n 更为通用,因为它被Unix-like系统广泛采用,而且HTML、XML、JSON等许多文件格式标准也采用\n作为换行符。
Windows系统中,为了兼容历史原因,通常使用\r\n作为行结束标志,既回车又换行,确保了最大程度的兼容性。
处理文本文件时,需要考虑这些差异,尤其是在进行跨平台文件交换时,可能需要进行适当的转换以避免显示错误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30770.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【unity笔记】二、海洋系统Crest Ocean System插件使用

一、介绍 Crest 是 Unity 技术先进的海洋系统。 它专为性能而设计,并大量使用细节级别 (LOD) 策略和 GPU 加速来实现快速更新和渲染。它还具有高度的灵活性,允许对水形状/泡沫/动态波浪/等进行任何自定义输入,并具有直…

奇迹MU服务器租用一个月需要多少钱?

在网络游戏产业迅猛发展的今天,越来越多的人参与到各种各样的网络游戏当中。其中,《奇迹MU》作为一款经典的多人在线角色扮演游戏,吸引了大量玩家的关注与热爱。为了保证游戏的流畅运行和玩家体验,租用高性能的服务器至关重要。 《…

01 基础入门 编写你的第一个 Go 语言程序

从这节课开始,我会带你走进 Go 语言的世界。我会用通俗易懂的语言,介绍 Go 语言的各个知识点,让你可以从零开始逐步学习,再深入它的世界。不管你以前是否接触过 Go 语言,都可以从这个专栏中受益。 现在,让…

时隔一年,SSD大涨价?

同样产品,2T,去年400多到手,今年700。 去年 今年

【机器学习】MSE和MAE损失函数有什么区别?回归问题的常用损失函数

在机器学习和统计学中,均方误差(Mean Squared Error, MSE)和平均绝对误差(Mean Absolute Error, MAE)是两种常用的损失函数,用于评估模型预测值与真实值之间的差异。它们的区别主要体现在对误差的处理方式和…

使用 Netty 自定义解码器处理粘包和拆包问题详解

使用 Netty 自定义解码器处理粘包和拆包问题详解 在网络编程中,粘包和拆包问题是常见的挑战。粘包是指多个数据包在传输过程中粘在一起,而拆包是指一个数据包在传输过程中被拆分成多个部分。Netty 是一个高性能、事件驱动的网络应用框架,提供…

从零开始精通Onvif之录像存储

💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。 概述 Onvif的录像存储功能主要由Media、Recording和Replay三个关键服务共同支持。它们协同工作,为录像的存储、检索和播放提供了标准…

3ds Max软件下载安装:3D建模软件 轻松开启你的建模之旅!

3ds Max,在建模过程中,网格建模和NURBS建模两大技术发挥着不可或缺的作用。网格建模允许用户通过顶点、边和面等元素的调整,精确地塑造出模型的形态;而NURBS建模则以其优秀的曲线和曲面处理能力,为设计师们提供了更为平…

迅为RK3568驱动教程第十八期-PWM

系统性PWM课程,完全掌握PWM。采用框架学习法,从基础知识、PWM子系统框架、API函数理论由面到点,逐个击破。通过SG90舵机,呼吸灯的控制把理论转为动手能力。最后从零实现输入捕获驱动程序,深入探究,体验一把…

关键字where 、in、not in、or、and、逻辑运算等组合使用

提示:条件筛选所有的关键字都可以进行任意的组合 文章目录 文章目录Mysql数据库内where关键字的常见用法Mysql数据库中几种比较运算符where之比较查询的方法where之逻辑运算【重点 常用】where之模糊查询(类似于正则)【重点、常用】where之范…

《人工智能导论》书面作业

第 1 章:绪论 1、分别解释人工智能的三个主要学派的代表人物和主要思想,并给出每个学派的一个实际应用实例。 符号主义(Symbolists 或 逻辑主义): 代表人物:马文闵斯基(Marvin Minsky&#xf…

dash二次确认

☆ 问题描述 在Dash应用中实现按钮的二次确认功能可以通过使用 dcc.ConfirmDialog 组件来实现。当用户点击按钮时,显示一个确认对话框,用户确认后才执行实际操作。以下是一个示例代码: ★ 解决方案 import dash from dash import dcc, htm…

了解软件开发生命周期 (SDLC)

介绍 软件开发生命周期 (SDLC) 是一种系统化、有序化的方法,用于按时、在预算内交付高质量、可靠的软件。SDLC 涵盖从初始系统概念到替换或退役的所有内容,可详细了解整个软件交付过程。 历史与演变 软件开发生命周期 (SDLC) 概念出现于 20 世纪 60 年…

网络安全练气篇——Web与Http基础

目录 Web安全 一、 大纲 二、 Web 简介 1、什么是 WEB 2、WEB 发展史 静态页面 多媒体阶段 CGI 阶段 AJAX MVC RESTful 云服务 3、WEB 工作方式 进一步讲解 什么是 URL 三、 HTTP 简介 HTTP 请求报文: 请求方法: 请求头部:…

人工智能大模型之开源大语言模型汇总(国内外开源项目模型汇总)

开源大语言模型完整列表 Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 所谓"语言模型",就是只用来处理语言文…

一文带你理清同源和跨域

1、概述 前后端数据交互经常会碰到请求跨域,什么是跨域,为什么需要跨域,以及常用有哪几种跨域方式,这是本文要探讨的内容。 同源策略(英文全称 Same origin policy)是浏览器提供的一个安全功能。同源策略限制了从同一个源加载的…

零撸包小游戏app对接广告变现开发

零撸包小游戏app对接广告变现开发是一个结合了游戏开发和广告变现策略的综合项目。以下是关于此项目开发的关键步骤和要点: 1. 市场分析与定位 首先,进行深入的市场调研,了解目标用户的特点、兴趣及游戏习惯,以及竞争对手的情况…

C# Practice for Fianl 0x00

Prac1 描述 大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。 斐波那契数列是一个满足 fib(x)={1fib(x−1)+fib(x−2)​x=1,2x>2​ 的数列 数据范围:1≤n≤40 要求:空间复杂度 O(1),时间复杂度 O(n) ,本题也有时间复杂度 O(lo…

SN74HC14+陶瓷振子做振荡器的试验初步

面包板搭建,4.5V电池供电。 注意我用杜邦线插1脚并缠绕到小频谱的天线上面,如果直接用杜邦线转sma。请先过衰减器。 本想试验一下465khz用SN74HC14做振荡器,实验了很多次,无法起振。 用1M,4M的也无法起振,…

JavaSE 面向对象程序设计 正则表达式

正则表达式 正则表达式(Regular Expression,简称Regex)是用于匹配文本中模式的字符串表达式。它由普通字符(例如字母、数字)和特殊字符(称为元字符)组成,可以非常灵活地定义搜索模式…