我分别运行带有两个“相同”测试文件的程序,但是得到了两个不同的结果。
第一个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
?
答案 0 :(得分:3)
第一个文件具有Windows样式的行尾标记:回车符,后跟换行符'\r\n'
,十六进制0d 0a
。
第二个具有unix样式:换行符'\n'
十六进制0a
。
有多种方法可以将一种样式转换为另一种样式。 Sublime文本可以选择保存特定的行尾,查找/替换可能有效,或者如果您使用的是类似Unix的系统,则可以尝试使用this question的答案。