TIniFileクラスを使用してUnicodeのiniファイルを扱うには?

概要: Windows OS上で動作するアプリケーションで、TIniFileクラスを使用してUnicode版のiniファイルを扱うには、あらかじめUTF-16(LE,リトルエンディアン)形式でBOM(Byte Order Mark)付きで保存されたiniファイルを用意しておく必要があります。

対象製品 : Delphi, C++Builder

対象バージョン: 2009以降

Windows OS上で動作するアプリケーションで、TIniFileクラスを使用してUnicode版のiniファイルを扱うには、あらかじめUTF-16(LE,リトルエンディアン)形式でBOM(Byte Order Mark)付きで保存されたiniファイルを用意しておく必要があります。

Delphi(C++Builder) 2009以降のTIniFileクラスおよびその基盤となるWindows APIはUnicodeに対応していますが、Windows APIの動作によりデフォルトではANSI文字列として処理されます。この動作を防ぐには、BOM付きのUTF-16(LE)のファイル(空でも構わない)を事前に用意しておきます。これにより、Windows APIはUnicodeでiniファイルを読み書きするようになります。