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

thi*_*his 4 unicode inno-setup character-encoding

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

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

图片

预期自定义消息:

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?

链接到源

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

有关更多详细信息,您可以阅读Github问题

Mar*_*ryl 6

如果.iss文件包含Unicode/UTF-8字符串,则该文件需要具有UTF-8 BOM.

在您的情况下,这French.CustomMessages.iss就是缺少BOM.

German.CustomMessages.iss具有BOM,这就是为什么它与德国的正常工作.


BOM的要求确实没有记录.但我相信从代码中可以清楚地看到TTextFileReader.ReadLine.

  • 确认这有效。谢谢您的帮助!希望他们会更新文档以反映这一事实;需要 BOM 的情况相当罕见。 (2认同)