Напишите текст в кодировке Юникод в inifiles - PullRequest
0 голосов
/ 01 апреля 2020

Как я могу написать Unicode строку "Внимание" в .inifile? как я пишу:

    Escreve := TIniFile.Create(Patch + 'File.ini');
    Escreve.WriteString('Informations', 'Patch',  ParamStr(0));

Имя папки "Внимание" и на .inifile шоу ????????

1 Ответ

2 голосов
/ 01 апреля 2020

Вкл. 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...