俄语字符显示为'?'在安装程序中

问题描述 投票:0回答:1

我使用NSIS创建了英语,法语和俄语的桌面应用程序。法语和英语的工作正常,但选择俄语时会显示“?”而不是一些字符。例如:原始字符串是Äîáðîïîæàëîâàòüâ€ìàñòåðíàñòðîéêè

它在运行时显示为:Russian error text at runtime

我已经在我的LanguageText.nsh文件中添加了!define MUI_LANGDLL_ALLLANGUAGES。我使用俄语版的Windows 10 64Bit虚拟机作为测试安装程序。

UPDATE

我在我的主文件中添加了Unicode true,并使用记事本作为建议转换为UTF-8中的所有文件(.ini / .nsh)。现在安装程序上的标题工作完美,其他字符仍然是'?????'

enter image description here

此外,当我在记事本中打开我的language.nsh文件时,所有字符都会正确显示。但是当我在HM NIS中打开它时它会改变。

EX:记事本文件内容:LangString WMWelCome $ {LANG_RUSSIAN}“安装向导将帮助您安装$(^ NameDA)。\ NIf到您的计算机,如果您想更新程序,请备份程序,数据和数据库。\ NIt Before开始安装时,请关闭所有其他应用程序。\ n \ n要打开安装指南,请单击下面的链接。\ n \ n如果需要帮助,请通过\ [email protected]与我们联系或访问我们的网站。\ n \ n $ _CLICK“

当我在HM NIS中打开相同的文件时:内容更改为:LangString WMWelCome $ {LANG_RUSSIAN}“МаÑÑ,ÐμруÑÑ,а野老$(^名称)。\ n如果наÐ'аN€ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ,ÐμÑ,ÐμÑлdÐ'Ñ<N ...обоÑ,DNÐμновиÑ,NOEп Ñ€,,°¼,,,ÐÐÐÐÐÐа°°°°°°° €¾¾ÑÑÑÐÐÐÑÐ,ÑÑ°°ÑÑÑÑÐÐÐÐа··°°°°°Ñ... d°Ð½Ð¾Ð²ÐºÐ¸d·d°ÐºÑ€Ð¾Ð¹Ñ,ÐμвÑÐμÐ'Ñпр€ÑƒÐ³Ð¸ÐμDD»Ð¾Ð¶ÐμниÑ。\ n \nЧÑ,оd±ñ<оÑ,ÐºÑ €ÑŒ<ÑŒÑÑŒ安装指南Ð金边жмиÑ,Ðμ°Ð½Ð°NNN <d»ÐºÑƒÐ²Ð½Ð¸Ð·Ñƒ。\ n \ n如果Ð'лNполуч‰dÐμниÐμпомоÑ,поР¶Ð°d»NÑвÑжиÑ,ÐμÑьуйÑÑ,d°Ð½Ð°Ð¼Ð¸在\ [email protected]的dD»dпоÑÐμÑ,DNÐμнаÑуNN,N€ d°Ð½Ð¸Ñ†ÑƒD²Ð¸Ð½Ñ,ÐμрнÐμÑ,Ðμ网站。\ n \ n $ _Click“

installation nsis
1个回答
2
投票

NSIS B2

NSIS v2不以任何方式转换字符串,所有字符串都从源文件复制为原始字节。

要正确构建多语言安装程序,您应该将俄语字符串放在名为MyRussian.nsh的文件中,并使用可以保存在Windows 1251代码页中的编辑器对其进行编辑。


NSIS v3

NSIS v3在编译器内部将字符串转换为Unicode。我建议您在v3中构建多语言安装程序时将.nsi和.nsh文件保存为带有BOM / SIG的UTF-8。我还建议你生成一个Unicode安装程序,你可以通过在脚本中添加Unicode True来实现。

您还可以在使用/charset时使用!include选项强制执行特定编码,但在任何地方使用UTF-8都不那么痛苦。


当您使用MUI_LANGDLL_ALLLANGUAGES时,您告诉NSIS您不想隐藏可能无法在特定计算机上正确显示的语言。只有“俄罗斯机器”才能正确显示ANSI安装程序。 Unicode安装程序适用于每台计算机(显然,运行Windows 95/98 / ME的计算机除外)。

© www.soinside.com 2019 - 2024. All rights reserved.