已经有关于 unicode 和 ini 文件的问题,但其中许多是特定于域的。所以我不确定答案是否适用于一般情况。
动机:我想使用 ini 文件来存储一些简单的数据,比如一些数字和一些字符串。字符串由用户提供(通过 GUI 输入)。该软件可以在世界任何地方运行,可以使用任何语言。这些文件也可以在用户之间共享(因此它们可以在一个系统上写入,在另一个系统上读取等等)。
GetPrivateProfileStringW
我认为使用and时 ini 文件中的 unicode 应该没有问题WritePrivateProfileStringW
(我的目标是系统 >= Windows XP)。
但后来我偶然发现了这个问题的答案。
引用:
WritePrivateProfileStringW 函数将以遗留系统编码(例如,日本系统上的 Shift-JIS)写入 INI 文件,因为它是遗留支持函数。如果你想要一个完全支持 Unicode 的 INI 文件,你需要使用一个外部库。
我现在不确定——我需要担心吗?或者我可以继续使用ini文件吗?
编辑:
似乎避免随机编码的关键可能是准备一个包含 BOM 的空文件,然后使用该文件。有没有人(正面/负面)有这方面的经验?