Вкл. Windows, TIniFile
внутренне использует Win32 PrivateProfile API (в данном случае WritePrivateProfileStringA()
в Delphi 2007 и более ранних версиях и WritePrivateProfileStringW()
в Delphi 2009 и позже). WritePrivateProfileStringA()
вообще не поддерживает Unicode, а WritePrivateProfileStringW()
записывает данные Unicode, только если файл INI уже существует и был создан с помощью спецификации UTF-16, в противном случае вместо этого записываются данные ANSI.
Если вы использование Delphi 2009+, TMemIniFile
позволяет указать TEncoding
для требуемой кодировки, например TEncoding.UTF8
или TEncoding.Unicode
(UTF-16), например:
Escreve := TMemIniFile.Create(Patch + 'File.ini', TEncoding.UTF8);
Escreve.WriteString('Informations', 'Patch', ParamStr(0));