Inno使用ISS脚本中的消息设置Unicode编码问题

时间:2018-04-19 13:47:03

标签: unicode character-encoding inno-setup

我们有一个脚本设置,可以使用Inno Setup Unicode编译器运行。安装程序目前支持英语,德语和法语。

我们注意到,使用法语对我们的自定义消息进行编码是不正确的。自定义消息文件保存为UTF-8,因此不应存在编码问题。我们确认我们使用的是Unicode编译器而不是ANSI。

image

预期的自定义消息:

  

French.UninstallOldVersionPrompt=Il semble y avoir une version antérieure de Rubberduck installée sur ce système pour %s.There seems to be a previous version of Rubberduck, qui devra d'abord être désinstallée. Procéder à la désinstallation?

Link to source

该文件保存为UTF-8,因此不应该有编码问题。出了什么问题?

有关详细信息,请阅读Github issue

1 个答案:

答案 0 :(得分:5)

tick文件需要UTF-8 BOM,如果它包含Unicode / UTF-8字符串。

在您的情况下,它是缺少BOM的.iss

French.CustomMessages.iss有BOM,这就是它与德语合作的原因。

BOM requirement is indeed not documented。但我相信从TTextFileReader.ReadLine的代码中可以清楚地了解到它。