我有一个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 Compiler 的 unicode 版本,主 ISS 文件就支持 UTF-8。您不能在 ISL 语言文件中使用 UTF-8 或任何 unicode 格式,因为这些文件必须采用 ANSI 格式并指定适当的代码页。
您还必须使用 unicode 字符文字来指定该[Code]部分中的 unicode 文本。
有关详细信息,请参阅帮助文件中的 Unicode Inno Setup 文章。
| 归档时间: |
|
| 查看次数: |
1922 次 |
| 最近记录: |