系统换行符的思考

文章讲述了不同操作系统如Windows、Linux和Unix对换行符的不同表示,以及UTF-8和UTF-8withBOM编码的区别。提到了dos2unix和unix2dos工具用于在DOS/Windows与Unix格式之间的文本转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

各系统换行符

换行符,也即是回车换行,因为表示为Carriage-ReturnLine-Feed

回车用Return-Carrige表示,简写为CR,字符表示为\r。
换行用Line-Feed表示,简写为LF,字符表示为\n。

由于历史原因,各操作系统使用不同的字符来表示换行符:

标识字符
WindowsCRLF\r\n
Linux/UnixLF\n
MacCR\r

这段历史,可参考回车换行符的来龙去脉

Windows文件在Linux上显示

在Windows上创建的文件,如果未修改过其换行符,将其在Linux系统打开时,其换行符\r\n中的\n会直接被解释成换行符$(使用vim打开文件,然后使用set list(set nolist)显示(关闭显示)所有字符),而\r会被解释成^M(使用vim -b 目标文件即可显示)。

在这里插入图片描述
在这里插入图片描述

如果想要知道某个文件的使用的换行符格式,可使用vscode打开文件,界面右下角会将其文件编码格式、换行符、tab字符个数等信息。点击相应位置即可修改相关信息。

在这里插入图片描述

UTF-8与UTF-8 With BOM

UTF-8 With BOM是Windows产物,这种编码格式的文件中,开头会有几个特殊字符,当Windows系统检测到这几个字符时,便会将该文件以UTF-8编码处理。

可参考UTF-8和UTF—8Bom的区别(转)

dos2unix 和 unix2dos

Dos2unix 软件包包括工具 dos2unixunix2dos,用于将纯文本文件在 DOS 或 Mac 格式与 Unix 格式之间相互转换。

DOS/Windows 的文本文件中,断行符是由两个字符共同表示的:回车符(CR)和换行符(LF)。Unix 的文本文件中,换行符则由单个换行符(LF)表示。而 Mac 的文本文件则由单个回车符(CR,用于 Mac OS X 之前的系统)或单个换行符(LF,用于当下的新 Mac OS)表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值