Inno Setup替换没有BOM的UTF-8文件中的字符串

史蒂夫

我需要在配置文件中更改一些值。该文件是不带BOM的UTF-8。我需要以相同的方式保存它。如何使用Inno Setup Unicode版?注:是不行的,而并不说明如何正确地读取文件。

马丁·普里克里(Martin Prikryl)
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;

LoadStringFromFileInCPSaveStringToFileInCP:从何而来
转换阵列字符串为Unicode和回ANSI - Inno Setup的

该代码需要Inno Setup的Unicode版本(Inno Setup 6唯一的版本)。
对于Unicode字符串文字,您的.iss文件必须采用带有BOM的UTF-8编码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Inno Setup保存带有BOM文件的UTF-16

从Inno Setup拆卸字符串[代码]

如何在Inno Setup中解析JSON字符串?

Inno Setup:在UTF8中记录/恢复文件路径

Inno Setup,如何在多个文件中搜索特定的字符串?

Inno Setup Pascal脚本-读取UTF-16文件

Inno Setup中的通配符(测试固定字符串前缀后是否有任何值)

搜索并替换同一文件中的字符串,并计算替换的数字

Inno Setup 6不能在字符串参数中使用DLL函数,而可以在Inno Setup 5中使用

检查字符串列表中的所有字符串在Inno Setup中是否都相同

在Inno Setup中比较版本字符串

Inno Setup 以字符串为参数调用 DLL

在Inno Setup中记录TWindowsVersion

Inno Setup中的条件DisableProgramGroupPage

Inno Setup 中的动态密码

Visual Studio C ++ 2013 Express中警告c4819-没有Bom的utf8文件

无法在文件中找到字符串并使用Inno Setup填充它?

Inno Setup在注册表中的多字符串键中追加行

Inno Setup中的条件文件复制

Inno Setup:从测试文件中删除空行

使用Awk将一个文件中的字符串替换为另一文件中的字符串

自动重试删除要用Inno Setup替换的文件

Inno Setup-如何在Pascal脚本中本地化字符串?

有没有一种方法可以在Inno Setup中使用.pas文件?

Inno Setup:从现有文件中删除写保护

有没有办法在Inno Setup中读取系统信息

从具有托管输出的C#DLL返回字符串到Inno Setup脚本

Inno Setup 6.0.5始终创建没有签名的新卸载程序文件

为什么在Inno Setup中使用“&”字符?