加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 04:13:32 所属栏目:大数据 来源:网络整理
导读:我有一个Inno Setup安装程序,可以使用Pascal Script创建自定义向导页面.安装程序似乎使用正确的模式来支持其他语言.但是,使用CreateCustomPage()创建的自定义向导页面会在其中显示乱码,而不是目标语言中的字符串(在本例中为俄语). 字符串存储在[CustomMessag
我有一个Inno Setup安装程序,可以使用Pascal Script创建自定义向导页面.安装程序似乎使用正确的模式来支持其他语言.但是,使用CreateCustomPage()创建的自定义向导页面会在其中显示乱码,而不是目标语言中的字符串(在本例中为俄语).

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

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

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

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

[CustomMessages]
ru.MyStringConstant=<Russian string>
ru.MyOtherStringConstant=<Russian string>

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

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

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

解决方法

只要您运行Inno编译器的unicode版本,主ISS文件就支持UTF-8.您不能在ISL语言文件中使用UTF-8或任何unicode格式,因为这些格式必须是ANSI,并且指定了相应的代码页.

您还必须使用unicode字符文字在[Code]部分中指定unicode文本.

见Unicode Inno Setup article in the help file for details.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读