【问题标题】:XML schema file (.xsd) has different size on Linux and WindowsXML 模式文件 (.xsd) 在 Linux 和 Windows 上的大小不同
【发布时间】:2015-11-03 09:10:04
【问题描述】:

我有一个 XML 架构文件 (.xsd),它在 Linux 和 Windows 上显示的大小不同。可能是什么原因?

当我比较两个文件(在 Windows 上)时,它们的数据相同,也许文件大小仍然不同。 Windows 文件比 Linux 对应文件大几百字节。

【问题讨论】:

    标签: xml linux windows file schema


    【解决方案1】:

    传统上,unix 和 windows 在文本文件(例如 XML)中具有不同的行尾。

    Linux 使用LF(又名\n),而Windows 使用CRLF(又名\r\n)。

    后者占用2个字节,而前者只需要一个字节。

    因此,如果您以“本机”方式创建文件(例如,现代版本的 vontrol 系统将根据文件签出的系统自动转换行尾),最终 w32 文件会稍大一些(每行一个字节)比他们的 unix 版本。

    【讨论】:

    • 那有什么办法呢?
    • 为了应用补救措施,您必须首先遇到问题。不同的行尾(除了它引起的混乱)和不同的文件大小没有固有的问题。那么为什么需要“修复”它呢?
    • 我的意思是,我们如何确保文件在 Linux 和 Windows 上具有相同的行结尾 - 无论该文件是在哪个编辑器和操作系统上创建的。有可能吗?
    • 你想达到什么目的,为什么?一些编辑(我想到notepad)在呈现非本地行尾时可能会遇到问题。此外,您还没有指定 anything 关于您正在使用的传输机制(您如何分发文件),所以您基本上是在问:“我如何在任何编辑器和操作系统上创建具有给定 EOL 的文件?” - 这当然是不可能的,因为任何编辑都可以选择使用他们喜欢的任何行尾。
    • 其实我想在使用之前计算模式文件的CRC进行验证(确保它没有被用户篡改)。由于 Win 和 Linux 上的 LF 和 CRLF 不同,CRC 的计算方式不同。我想在两个平台上保持文件相同,但这样做似乎很乏味。所以,我存储了 2 个 CRC - 两个平台都不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 2012-12-01
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    相关资源
    最近更新 更多