|
1
2
我建议用制表符分隔每个字段,用回车符分隔每个记录。 在每个字符串中,替换所有会影响字段和记录解释和呈现的字符。这将包括控制字符(U+0000__U+001F、U+007F__U+009F)、非图形行和段落分隔符(U+2028,U=2029)、方向控制字符(U+202A_U+202E)和字节顺序标记(U+FEFF)。 它们应该替换为等长的转义序列。转义序列应该以一个罕见的(对于您的应用程序)字符开始。转义符本身也应该转义。 这将允许您轻松附加新记录。它还有一个额外的优点,即能够将文件加载到任何电子表格或字处理程序中,以便进行可视化检查和修改,这对于调试很有用。 这也很容易编码,因为文件是有效的UTF-8文档,所以可以使用标准的文本读写例程。这还允许您根据需要轻松地转换为utf-16be或utf-16le,而不会出现复杂的情况。 例子:
选项卡优于逗号作为字段分隔符的原因有两个。逗号在普通文本字符串(如英语文本)中更常见,必须更频繁地替换。电子表格程序(如Microsoft Excel)更自然地处理以制表符分隔的文件。 |
|
|
2
1
大部分时间都在想… 真正的低技术是使用(例如)空字节作为分隔符,并且只“引用”输出中出现的所有空字节,并附加一个空值。 也许可以用 SCSU 还有这个。 或者值得一看 gzip 格式化,如果不使用它,也可以模仿它:
[…]
这些成员中的每一个都可以有一个可选的“文件名”、注释等,我相信您可以继续附加成员。 或者你可以用 bencode ,在Torrent文件中使用。或 BSON . 也见 Wikipedia's Comparison of data serialization formats . 否则,我认为您在每个字符串前面加上其长度的想法可能是最简单的。 |