如何在nsis中仅使用unicode?

如何在nsis中仅使用unicode?,nsis,Nsis,我正在评估nsis。我想创建一个安装程序(使用mui2),它将使用提供的Unicode字符串(用于标题、按钮、标签等),而不使用任何“本地化” 例如:应用程序标题包含来自不同语言的unicode字符(假设:“无论用户“语言”如何,“都将是整个标题,无论用户“语言”) 是否有一种简单的方法可以独立于mui语言使用提供的精确unicode字符串 编辑(如注释所示): 上面是关于为按钮和UI文本(无本地化)提供自己的Unicode字符串。与任何源(或目标)“文件名”或“路径”无关。NSIS不会转换名称

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

例如:应用程序标题包含来自不同语言的unicode字符(假设:“
无论用户“语言”如何,“
都将是整个标题,无论用户“语言”)

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

编辑(如注释所示):
上面是关于为按钮和UI文本(无本地化)提供自己的Unicode字符串。与任何源(或目标)“文件名”或“路径”无关。

NSIS不会转换名称,只要确保将.NSI源文件保存为带有/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

NSIS不会翻译名称,只要确保将.NSI源文件保存为带/Signature的UTF-8,或者如果使用非ASCII字符,则将其保存为带BOM的UTF-16

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

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

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

您是说要为按钮和所有UI文本提供自己的字符串(无本地化),还是只想让应用程序名保持不变,而不管UI的其他部分发生什么情况?我从来没有问过文件名。我仍然不清楚您是想在UI中使用自定义字符串还是默认NSIS字符串(安装程序的名称不是默认字符串,它始终是自定义的)。您是说要为按钮和所有UI文本提供自己的字符串(无本地化)或者你只是想让应用程序名保持不变,不管UI的其他部分发生了什么?我从来没有问过文件名。我仍然不清楚您是想在UI中使用自定义字符串还是默认NSIS字符串(安装程序的名称不是默认字符串,它始终是自定义的)。在版本2.54中无法识别
${U+xxx}
常量。你知道怎么解决这个问题吗?该版本也不能处理unicode.nsi文件。@samsirry v2不支持unicode。确保操作系统和/或编辑器设置为包含要编写的字符的代码页,并直接键入该字符。除非您仍然支持Windows 9x,否则只需切换到v3和Unicode即可。
${U+xxx}
常量在2.54版中无法识别。你知道怎么解决这个问题吗?该版本也不能处理unicode.nsi文件。@samsirry v2不支持unicode。确保操作系统和/或编辑器设置为包含要编写的字符的代码页,并直接键入该字符。除非您仍然支持Windows9x,否则只需切换到v3和Unicode即可。