Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n

转载链接:http://blog.csdn.net/tskyfree/article/details/8121951

一、概念:

换行符‘\n’回车符‘\r’

(1)换行符就是另起一行  --- ‘\n‘ 10 换行(newline)

(2)回车符就是回到一行的开头 --- ‘\r‘ 13 回车(return)

所以我们平时编写文件的回车符应该确切来说叫做回车换行符  

 

二、应用:

(1)在微软的MS-DOS和Windows中,使用“回车CR(‘\r‘)”和“换行LF(‘\n‘)”两个字符作为换行符;

(2)Windows系统里面,每行结尾是 回车+换行(CR+LF),即“\r\n”;

(3)Unix系统里,每行结尾只有 换行CR,即“\n”;

(4)Mac系统里,每行结尾是 回车CR 即‘\r‘。

三、影响:

(1)一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;

(2)而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

(3)Linux保存的文件在windows上用记事本看的话会出现黑点。

四、可以相互转换

在linux下,命令unix2dos 是把linux文件格式转换成windows文件格式,命令dos2unix 是把windows格式转换成linux文件格式。

在不同平台间使用FTP软件传送文件时, 在ascii文本模式传输模式下, 一些FTP客户端程序会自动对换行格式进行转换. 经过这种传输的文件字节数可能会发生变化.

如果你不想ftp修改原文件, 可以使用bin模式(二进制模式)传输文本。

一个程序在windows上运行就生成CR/LF换行格式的文本文件,而在Linux上运行就生成LF格式换行的文本文件。

时间: 2024-07-31 01:40:46

Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n的相关文章

菜鸟随笔(1)---Windows、Unix、Mac不同操作系统的换行问题 回车符\r和换行符\n

一只菜鸟横空出世,码农世界闯一闯,每天进展多一丢丢. Windows.Unix.Mac不同操作系统的换行问题 回车符\r和换行符\n 一.概念: 换行符'\n'和回车符'\r' (1)换行符就是另起一行 --- '\n' 10 换行(newline) (2)回车符就是回到一行的开头 --- '\r' 13 回车(return) 所以我们平时编写文件的回车符应该确切来说叫做回车换行符 CR: 回车(Carriage Return) \rLF: 换行(Line Feed) \n 二.应用: (1)在

【C++】小心使用文件读写模式:回车('\r') 换行('\n')问题的一次纠结经历

原来没有仔细注意C++读写文件的二进制模式和文本模式,这次吃了大亏.(平台:windows  VS2012) BUG出现: 写了一个程序A,生成一个文本文件F保存在本地,然后用程序B读取此文件计算MD5值. 将该文件上传到服务器,再用程序B将文件从服务器上下载下来计算MD5值,神奇的发现两次计算的MD5值不一样,文件被谁改了?? 排除问题: 1.首先对比了生成文件F和上传到服务器的文件,发现文件复制过程无差错,是同一个文件. 2.用程序B下载文件F后,保存在本地,发现文件与原文件F不一致,对比二

3.13. Notepad++中Windows,Unix,Mac三种格式之间的转换

由于历史原因,导致Windows,Unix/Linux,Mac三者之间,对于文件中所用回车换行符,表示的方法,都不一样. 这就导致了很多人都会遇到回车换行符的困惑,和需要在不同格式间进行转换. 其中,关于回车换行符的详细解释,去看这里[13] 此处,介绍一下,如何通过Notepad++实现在这三者之间进行转换. 3.13.1. 查看当前文件格式(换行符用的是什么字符) 当前是Windows的平台,所以通过“显示所有字符”: 默认所查看到的是Windows的CR LF: 3.13.2. 从Wind

Notepad++中Windows,Unix,Mac三种格式之间的转换

http://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htmls/npp_func_windows_unix_mac.html 由于历史原因,导致Windows,Unix/Linux,Mac三者之间,对于文件中所用回车换行符,表示的方法,都不一样. 这就导致了很多人都会遇到回车换行符的困惑,和需要在不同格式间进行转换. 其中,关于回车换行符的详细解释,去看这里[13] 此处,介绍一下,如何通过Notepad++实现在这三者之间进

Unix,windows和Mac中的换行

Unix 系统里,每行结尾只有“<换行>”,即“\n”:Windows系统里面,每行结尾是“<换行><回车 >”,即“\n\r”:Mac系统里,每行结尾是“<回车>”.一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行:而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号.所以,如果你需要跨平台处理文本文件,可能会被回车换行搅得有点头大. 0x0D(asc码是13) 指的是“回车” 

【转】操作系统Unix、Windows、Mac OS、Linux的故事

电脑,计算机已经成为我们生活中必不可少的一部分.无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统.正是这些操作系统,让那些硬件和芯片得意组合起来,让那些软件得以运行,让我们的世界在科技的领域里一次又一次的享受生活 我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Linux是无人不知无人不晓.他们都是操作系统,也在自己的领域里独领风骚.这都还得益于另外一个古董级别的操作系统--Unix,虽然说古董级别,只是

操作系统Unix、Windows、Mac OS、Linux的故事

文章转自:http://blog.csdn.net/wenmingchan/article/details/49925379 http://www.jb51.net/os/other/159236.html 我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Linux是无人不知无人不晓.他们都是操作系统,也在自己的领域里独领风骚.这都还得益于另外一个古董级别的操作系统--Unix,虽然说古董级别,只是他年纪大了,性能和功能,U

总结下Windows, Linux, Mac系统下的换行符差异

0. Introduction: 我们通常所说的回车换行,即文本文件的一行结束,开始新的一行,这个概念英文叫做End-of-Line,简写为EOL,你也可以把它理解为一个逻辑上的换行,但是这个相同的概念在不同的操作系统中却由不同的ASCII码(0x0a, 0x0a0x0d, 0x0d)组成,为了避免混淆,我们后面都称这个统一逻辑上的概念为EOL. 1.History 很久很久以前,在电脑还没有出现的时候,人们电传打字机来通信,(即TeTypewriter,TeleTYpewriter,提取单词的

Windows文件换行符转Linux换行符

前段时间,有个朋友碰到由于Windows的换行符和Linux换行符不一样,导致程序编译不通过.这个问题之前自己也碰到过,网上资料也蛮多,不过还是借此总结总结,因为发现总结+实践的方式能够让自己更好的提升. 操作系统文件换行符 首先介绍下,在ASCII中存在这样两个字符CR(编码为13)和 LF(编码为10),在编程中我们一般称其分别为'\r'和'\n'.他们被用来作为换行标志,但在不同系统中换行标志又不一样.下面是不同操作系统采用不同的换行符: Unix和类Unix(如Linux):换行符采用