【问题标题】:Why two file with same text and encoding but have different size?为什么两个文件具有相同的文本和编码但大小不同?
【发布时间】: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


【解决方案1】:

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

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

有很多方法可以从一种样式转换为另一种样式。 Sublime text 可以选择以特定的行结尾保存,查找/替换可能有效,或者如果您使用的是类 Unix 系统,您可以尝试this question 的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 2015-11-18
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    相关资源
    最近更新 更多