为什么两个文本和编码相同但大小不同的文件?
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.
的答案
我 运行 一个程序有两个 'same' 测试文件,但得到了两个不同的结果。
第一个 16 字节的测试文件 a.txt
导致正确的结果,但是第二个 14 字节的测试文件 b.txt
导致错误的结果。
我把它们都保存在编码UTF-8
中。
两者在编码UTF-8
:
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.
的答案