显然至少有两种换行符类型:DOS 和 Unix。但是 OS X 有自己的纯文本“格式”吗?
我打开一个文本文件nano
,惊讶地发现:[ Read 26793 lines (Converted from Mac format) ]
什么是 Mac 格式,它与使用 nano 等 Unix 工具编写的文件有何不同,以及为什么需要将其转换为在nano
Mac 上读取?
答案1
应该指出的是,Mac OS X 现在使用\n
又名换行符 ( 0x0A
),就像所有其他 *nix 系统一样。仅使用 Mac OS 版本 9 及更早版本\r
(CR)。
参考资料: 维基百科上换行符。
答案2
jw013 指出另一个答案Mac 现在已经切换到 *nix 标准\n
。
以前,Mac OS 是\r
(回车符,13/0x0D);Windows 是\r\n
,而 *nix 是\n
(换行符,10/0x0A)。我不确定那些比较少见的系统,但我猜几乎所有其他系统也是\n
。区别来自于电传打字机时代,当时\n
会移动到下一行,并且\r
会将头部移回到页面的开头(左侧),与过去使用打字机必须(手动)执行的操作非常相似。请注意,在 Linux 上的终端中,\r
仍然将光标移动到当前行的开头,而不是向下移动到下一行,这与电传打字机的用法一致。我已经看到了关于每个系统为何选择自己的行类型的更详细历史记录,所以我相信您可以搜索更多详细信息。
无论如何,在实际问题中,大多数编辑器(记事本除外)都可以处理这三种类型中的任何一种,并且有很多方法可以在它们之间进行转换。当以文本模式传输文件时,某些远程复制工具(例如 ftp,可能还有其他类似程序)甚至可以透明地转换为目标的正确行类型。我今天在一个网站上读到所以帖子1 gcc 实际上会转换\n
为适合其编译系统的行结尾。
引用:
假设文件以文本模式打开,不同的行结束字符并不重要,除非您要求二进制文件,否则您会得到这样的结果。编译后的程序将为编译的系统写出正确的内容。