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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |