gpt4 book ai didi

inno-setup - Inno Setup 的 ExpandConstant 是否支持 UTF-8?

转载 作者:行者123 更新时间:2023-12-04 20:13:40 25 4
gpt4 key购买 nike

我有一个 Inno Setup 安装程序,它使用 Pascal 脚本创建自定义向导页面。安装程序似乎使用正确的模式来支持其他语言。但是,使用 CreateCustomPage() 创建的自定义向导页面, 在其中显示垃圾字符,而不是目标语言(在本例中为俄语)中的字符串。

字符串存储在 [CustomMessages] 中部分,使用每种语言的包含文件。尽管我是 Inno Setup 的新手,但字符串的设置方式似乎与 Inno Setup 示例以及我从 Internet 上的各种来源阅读的说明一致。

无论如何,自定义向导页面及其上的控件是使用以下代码创建的:

Page := CreateCustomPage(
PreviousPageId,
ExpandConstant('{cm:MyStringConstant}'),
ExpandConstant('{cm:MyOtherStringConstant}')
);

然后,在字符串包含文件中(同样,对于俄语),字符串定义为:
[CustomMessages]
ru.MyStringConstant=<Russian string>
ru.MyOtherStringConstant=<Russian string>

但是当安装程序运行时,自定义向导页面上的字符串显示为垃圾字符(好像 UTF-8 字符被解释为 Ansi),而不是正确的俄语文本。

安装程序中的其他页面(即那些不是用 CreateCustomPage() 创建的)显示正确。

所以,我的问题是,在使用 ExpandConstant() 时是否需要做一些特殊的事情?使用 UTF-8 字符串?或者是否有更好的函数可用于从 [CustomMessages] 中检索 UTF-8 字符串部分?

最佳答案

只要您运行的是 Inno Compiler 的 unicode 版本,那么主 ISS 文件就支持 UTF-8。您不能在 ISL 语言文件中使用 UTF-8 或任何 unicode 格式,因为这些文件必须是 ANSI 并指定了适当的代码页。

您还必须使用 unicode 字 rune 字来指定 [Code] 中的 unicode 文本。部分。

Unicode Inno Setup article in the help file for details .

关于inno-setup - Inno Setup 的 ExpandConstant 是否支持 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14693425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com