我分别运行一个带有两个“相同”测试文件的程序,但得到了两个不同的结果。
16个字节的第一个测试文件a.txt
导致正确的结果,但是14个字节的第二个测试文件b.txt
导致错误的结果。
我在编码UTF-8
时保存了它们。
在编码UTF-8
时使用Sublime Text打开时,它们都包含以下三行:
p cnf 1 1
1 0
但是,在使用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样式行尾标记:回车后跟换行符'\r\n'
,hex 0d 0a
。
第二种是unix风格:换行'\n'
hex 0a
。
有很多种方法可以从一种风格转换为另一种风格。 Sublime文本可以选择使用特定行结尾进行保存,查找/替换可能有效,或者如果您使用的是类Unix系统,则可以尝试this question的答案。