如何在nsis中仅使用unicode?

时间:2019-02-17 12:30:31

标签: nsis

我正在评估nsis。我想创建一个安装程序(使用mui2),它将使用提供的Unicode字符串(用于标题,按钮,标签等),而不使用任何“本地化”。

例如:应用程序标题包含来自不同语言的unicode字符(假设:“ Λεξικό-Dictionary-Речник”将是整个标题,而不考虑用户的“语言”)

是否有一种简单的方法可以独立于mui语言使用提供的确切unicode字符串?

编辑(如评论): 上面的内容是关于按钮和通常的UI文本(无本地化)具有自己的Unicode字符串。与任何源(或目标)“文件名”或“路径”无关。

2 个答案:

答案 0 :(得分:0)

NSIS不会翻译名称,只要确保您将.NSI源文件另存为带有BOM / Signature的UTF-8或带有BOM的UTF-16(如果使用非ASCII字符)即可。

Unicode True
Name "Λεξικό-Dictionary-Речник"
OutFile "MyInstaller.exe"
InstallDir "$ProgramFiles\$(^Name)"

!include MUI2.nsh

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

!insertmacro MUI_LANGUAGE English

Section
SetOutPath $InstDir
File /r "c:\myfiles\*.*"
SectionEnd

还可以从Unicode代码点手动构造Unicode字符:

Section
MessageBox MB_OK "${U+2115}SIS" # DOUBLE-STRUCK CAPITAL N + "SIS"
SectionEnd

答案 1 :(得分:0)

问题是我将文件另存为UTF8(!!!)。将记事本中的文件另存为Unicode后,问题消失了。