Сохраните INI-файл в UTF-8, а не ANSI в Inno Setup
Я начинаю использовать Inno Setup, и у меня есть некоторые проблемы с кодировкой INI-файла.
Я хочу сохранить пользовательский ввод в INI-файл, и этот ввод может содержать акценты.
Я использую Inno Setup Unicode, мой setupScript.iss имеет кодировку UTF-8, а вот мой код (часть):
[INI]
Filename: "{app}\www\conf\config.ini"; Section: "Settings"; Key: "ca.plafondAnnuel"; String: "{code:GetUser|Plafond}"
Filename: "{app}\www\conf\config.ini"; Section: "Settings"; Key: "app.siren"; String: "{code:GetUser|Siren}"
Filename: "{app}\www\conf\config.ini"; Section: "Settings"; Key: "app.adresse"; String: "{code:GetUser|Adresse}"
[Code]
var
UserPage: TInputQueryWizardPage;
ExamplePage : TInputOptionWizardPage;
ImmatriculationPage : TInputOptionWizardPage;
FakeElemIndex: Integer;
FakeElem: TCustomEdit;
AdresseTextarea: TNewMemo;
procedure InitializeWizard;
begin
UserPage := CreateInputQueryPage(wpWelcome,
'Configuration de l''application', '',
'Configurez ici votre application. Une fois installée, vous pourrez modifier ces valeurs.');
UserPage.Add('Siren :', False);
UserPage.Add('Plafond annuel (utilisé par les auto-entreprises, mettre 0 si vous ne souhaitez pas plafonner votre chiffre d''affaire.):', False);
FakeElemIndex := UserPage.Add('Votre adresse complète (telle qu''elle s''affichera sur les devis et factures, avec nom complet):', False);
FakeElem := UserPage.Edits[FakeElemIndex];
AdresseTextarea := TNewMemo.Create(WizardForm);
AdresseTextarea.Parent := FakeElem.Parent;
AdresseTextarea.SetBounds(FakeElem.Left, FakeElem.Top, FakeElem.Width, ScaleY(50));
// Hide the original single-line edit
FakeElem.Visible := False;
end;
function GetUser(Param: String): String;
begin
if Param = 'Adresse' then
Result := AdresseTextarea.Text
else if Param = 'Siren' then
Result := UserPage.Values[0]
else if Param = 'Plafond' then
Result := UserPage.Values[1];
end;
Значение, возвращаемоеgetUser|Adresse
в[INI]
часть не в кодировке UTF-8: я открываю файл INI с помощью Notepad ++ и вижу, что файл закодирован в формате UTF-8. Но ценностьadresse
кодируется ANSI (если я изменю кодировку файла на ANSI, это значение будет читабельным)
Кто-то может помочь мне понять, как я могу сохранить этот пользовательский ввод в UTF-8?
Большое спасибо !