設定ファイル保存時の文字コード
ドキュメントを追加しました(日本語のみです)。r10476
テストしていたらメモリリークしていた箇所を見つけたため直しました。r10475
UnicodeではないANSIのiniファイルでもおおむねokなのですが、 "😄"などを保存したときに"?"に 化けてしまうのでUnicode版iniファイルのほうが安全です。
UTF-16エンコードだとスペースの無駄なのはUTF-16の仕様だから、 UTF-16を使っている(UTF-8版iniファイルではない)のはOSの仕様だから、 という感じですね。
非推奨APIというのもありますが iniファイルでUTF-16が使えるのはあまり知られていなくて、 Microsoftのドキュメントからはわかりにくいです。
将来(最近?)はUTF-8BOMなiniファイルを扱えるかもしれません。
それと、lng ファイルを収めた lang フォルダが 「lang」 と 「lang_utf16le」の2つあるのは Unicode版iniファイルが扱えないWindows 9xのためですね。
了解しました。説明ありがとうございます。
TODO
英語版を入れました。r10479です。
クローズします。
むかしこのような意見が書かれていたのを思い出しました。
https://twitter.com/sempreff/status/1535543032145408001
確認ですが、BOM付UTF-16 にしたのは「WritePrivateProfileStringW で書くとそうなるから」あるいは「内部的に変換しなくていいから」という理由であっているでしょうか?