小编pic*_*ccy的帖子

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

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

字符串存储在一个[CustomMessages]部分中,使用每种语言的包含文件.虽然我是Inno Setup的新手,但字符串似乎的设置方式与Inno Setup示例一致,并且我从互联网上的各种来源阅读说明.

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

Page := CreateCustomPage(
  PreviousPageId,
  ExpandConstant('{cm:MyStringConstant}'),
  ExpandConstant('{cm:MyOtherStringConstant}')
);
Run Code Online (Sandbox Code Playgroud)

然后,在字符串包含文件中(同样,对于俄语),字符串定义为:

[CustomMessages]
ru.MyStringConstant=<Russian string>
ru.MyOtherStringConstant=<Russian string>
Run Code Online (Sandbox Code Playgroud)

但是当安装程序运行时,自定义向导页面上的字符串会显示乱码(如同UTF-8字符被解释为Ansi),而不是正确的俄语文本.

安装程序中的其他页面(即未创建的页面CreateCustomPage())正确显示.

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

inno-setup

5
推荐指数
1
解决办法
1922
查看次数

标签 统计

inno-setup ×1