如何跨平台存储UTF-8文本文件的元数据?

问题描述 投票:0回答:1

我正在寻找一种跨平台方法来存储 UTF-8 文本文件的少量元数据。例如当前选择和光标位置。我了解特定于文件系统的解决方案,例如在 Linux 上使用扩展属性,并在这里阅读了 MacOS 的各种解决方案,但我想知道是否有一些跨平台的“最受接受、最低公分母”的方式。

是否可以使用许多纯文本编辑器都能识别的特殊标记来结束 UTF-8 文件?如果没有,并且我必须将元数据存储在另一个文件中,是否有文件格式的最佳实践以及如何命名该文件?或者,是否有一种使用 UTF-8(例如 .rtf)的文件格式允许我存储元数据并且大多数平台都能很好地处理?

我正在尝试确定在 Windows、Linux 和 MacOS 上运行的应用程序的最佳方式,到目前为止我发现的是特定于平台和文件系统的。

unicode utf-8 filesystems cross-platform file-format
1个回答
0
投票

从文件系统的角度来看,Linux 和 macOS 上的扩展属性 (EA) 以及 Windows 上的 EA 或备用流 (ADS) 是兼容性的最佳选择。它们的问题是 EA 没有得到很好的支持,而且当文件被复制时,EA 通常不会被复制(在 Windows 上 - 我不能说在其他平台上)。 ADS 在 Windows 上处理得更好,但它们不是跨平台的。在 Windows 上使用 ADS 和在 Linux/macOS 上使用 EA 更有意义。

对于外部文件,其名称和格式完全由您决定。任何类型-大小-值序列都可以。我多年来一直使用自定义序列,最近,我决定在我们的一个项目中使用协议缓冲区 (Protobuf),其中数据应该可以被第三方读取。 Protobuf 允许您在将来扩展格式(如果您需要的话),并为您生成代码(您只需描述数据结构)。

© www.soinside.com 2019 - 2024. All rights reserved.