There are already questions regarding unicode and ini files, but many of them are rather domain-specific. So I am not sure if the answer can be applied to the general case.
Motivation: I want to use ini files for storing simple data like some numbers and some strings. The strings are provided by users (input via GUI). The software could run anywhere in the world, any language can be used. The files also can be shared between users (so they can be written to on one system, read on another and so on).
I figured that unicode in ini files should be no problem when using GetPrivateProfileStringW
and WritePrivateProfileStringW
(I am targeting systems >= Windows XP).
But then I stumbled upon an answer in this question.
Quote:
The WritePrivateProfileStringW function will write the INI file in legacy system encoding (e.g. Shift-JIS on a Japanese system) because it is a legacy support function. If you want to have a fully Unicode-enabled INI file, you will need to use an external library.
I am unsure now - do I have to worry? Or can I just go ahead and use ini files?
Edit:
It seems the key to avoid random encodings might be to prepare an empty file containing a BOM, then using this file. Has anyone (positive/negative) experience with this?