为什么两个文本和编码相同但大小不同的文件?

Why two file with same text and encoding but have different size?

我 运行 一个程序有两个 'same' 测试文件,但得到了两个不同的结果。

第一个 16 字节的测试文件 a.txt 导致正确的结果,但是第二个 14 字节的测试文件 b.txt 导致错误的结果。

我把它们都保存在编码UTF-8中。

两者在编码UTF-8:

下用Sublime Text打开时都由以下三行组成
p cnf 1 1
1 0

但是用16进制编码的Sublime Text打开时是不一样的:

a.txt(16 字节):

7020 636e 6620 3120 310d 0a31 2030 0d0a

b.txt(14 字节):

7020 636e 6620 3120 310a 3120 300a

为什么它们不同?我怎样才能把 b.txt 变成 a.txt

第一个文件有 windows 样式的行尾标记:回车 return 后跟换行符 '\r\n',十六进制 0d 0a

第二个具有 unix 风格:换行符 '\n' 十六进制 0a.

从一种样式转换为另一种样式的方法有很多种。 Sublime text 可能有一个选项可以保存特定的行尾,find/replace 可能有效,或者如果你使用的是类 Unix 系统,你可以尝试 this question.

的答案