Inno Setup заменяет строку в файле UTF-8 без спецификации - PullRequest
0 голосов
/ 23 января 2019

Мне нужно изменить некоторые значения в файле конфигурации. Файл UTF-8 без спецификации. Мне нужно сохранить его таким же образом. Как мне сделать это с Inno Setup Unicode Edition? Примечание: Это не работает, а Это не показывает, как правильно прочитать файл.

1 Ответ

0 голосов
/ 23 января 2019
const
  CP_UTF8 = 65001;

{ ... }
var
  FileName: string;
  S: string;
begin
  FileName := 'test.txt';
  if not LoadStringFromFileInCP(FileName, S, CP_UTF8) then
  begin
    Log('Error loading the file');
  end
    else
  if StringChangeEx(S, 'žluťoučký kůň', 'ďábelské ódy', True) <= 0 then
  begin
    Log('No value was replaced');
  end
    else
  if not SaveStringToFileInCP(FileName, S, CP_UTF8) then
  begin
    Log('Error writing the file');
  end
    else
  begin
    Log('Replacement successful');
  end;
end;

LoadStringFromFileInCP и SaveStringToFileInCP поступают из:
Inno Setup - преобразование массива строк в Unicode и обратно в ANSI

Требуется кодВерсия Inno Setup для Unicode (единственная версия для Inno Setup 6).
Для строковых литералов Unicode ваш файл .iss должен быть в кодировке UTF-8 с BOM.

...