【发布时间】:2019-03-20 10:11:56
【问题描述】:
我分别运行一个包含两个“相同”测试文件的程序,但得到了两个不同的结果。
第一个 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?
【问题讨论】:
-
注意:有些编辑会清理文件。 Unicode 文本可能有不必要的代码点(特别是如果输入是键盘),并且还有不同的规范化。在您的情况下,接受的解决方案是真正的原因,但您可能会遇到其他情况。
标签: encoding character-encoding hex newline eol