为什么 Windows 换行符比 Unix 换行符大?

Kyl*_*ira 1 windows unix linebreaks

所以我创建了两个文件,每个文件有 127,955 行和每行 24 个随机字符。就文本而言,这两个文件完全相同。然而,一个文件有 Unix 换行符,另一个文件有 Windows 换行符。带有 Unix 换行符的文件为 3,124 KB,而带有 Windows 换行符的文件为 3,249 KB。文件之间没有其他区别,因此我必须假设出于某种原因,Windows 换行符会占用更多空间。知道为什么吗?

txt*_*elp 9

如果您在十六进制编辑器中打开文本文件,您将在行尾看到的差异如下:

Windows 行结尾: 0x0D 0x0A

Unix 行结尾: 0x0A

0x0D是回车(以文字表示简称为十六进制值\r)。

0x0A是对于新行字符(文字形式的简称为十六进制值\n)。

当行尾为 Windows EOL 格式时,行将以 2 个字符结尾:\r\n; 而 Unix EOL 格式以 1 个字符结尾:\n.

因此,127,955 * (24 + 1) == 3,198,875 bytes (3,123.9 KB)对于 Unix EOL 和127,955 * (24 + 2) == 3,326,830 bytes (3,248.86 KB)Windows EOL。

希望有帮助。

  • 在任何人询问差异之前,KB 转换实际上是 Unix 的 3123.90 和 Windows 的 3248.86,四舍五入到提问者引用的数字,而不是您引用的截断值。 (2认同)