【发布时间】:2010-12-26 05:52:09
【问题描述】:
我正在开发的一个应用程序将数据存储在一个 INI 文件中。该应用程序创建了 INI 文件,而该文件又将被我们创建的另一个应用程序读取。 INI 文件也可以手动编辑。
INI 文件可能迟早会包含不同的语言,因此我们小心确保此文件中使用的所有数据都是 unicode 格式。
最初创建 INI 文件后,我们在记事本中检查了该文件,发现字母间距搞砸了。经过一番研究,我们发现了 Unicode 字节顺序标记 (BOM) FF FE 并开始在文件开头写这个,一切看起来都很好 - 文件创建正确,可以在记事本中手动编辑。
现在的问题 - 我们去寻找一个 INI 文件解析器而不是创建我们自己的。 Boost 属性树似乎很理想,但似乎 BOM 没有被底层 wifstream 过滤掉,最终属性树因此抛出异常。
接下来我们尝试了 SimpleINI link text,但 simpleINI (CSimpleIniW) 似乎不起作用,除非 UTF-8 标记位于文件开头。
到目前为止,2 个看似开发良好的 INI 文件处理器无法与我们简单的 INI 文件一起使用,因此我们开始认为我们采取了错误的方法。除了明显的“应该使用 XML”之外,对于这个问题,您还能提供哪些现实世界的建议?
更新:
我现在有这个工作。 BOM 不是问题。这是因为数据不是以 UTF8 存储的。谢谢……
【问题讨论】: