我想在NSI脚本中添加商标上标。
我尝试将unicode字符用于商标 - U+2122
,但是在运行安装程序exe时它没有正确显示商标字符?
我有以下问题:
答案 0 :(得分:2)
NSIS 2中的源文件只是一堆字节,这些字节直接存储在.exe中。在运行时,Windows将(在基于NT的系统上)通过使用当前代码页/系统区域设置(非unicode程序的语言)将这些字节转换为Unicode字符串。这意味着您必须在文本编辑器中使用正确的代码页/编码。如果您的安装程序支持多种语言,则需要使用LangString
,并且基本上在编辑器中使用正确的编码集编辑这些字符串。对每种语言使用.nsh可能有所帮助。
NSIS 3在编译器内部使用Unicode,如果要创建Unicode安装程序(Unicode True
),则可以使用任何Unicode代码点。您可以将.nsi保存为UTF-8或UTF-16(带BOM),也可以使用$ {U + hexnumber}语法:
Unicode True
Section
MessageBox mb_ok "Hello World${U+2122}"
SectionEnd
NSIS 3也可以生成Ansi安装程序,它知道$ {U + hexnumber}语法,但不能保证代码点在最终用户系统上正确显示,它仍然只限于简单的字节,并将从Unicode到Ansi使用您正在编译的系统的当前代码页。
答案 1 :(得分:0)
您可以尝试使用与0x99
等效的Windows 1252字符U+2122
。
使用西方配置的窗口,您可以通过键盘直接输入 Alt 0 1 5 3 (在数字键盘上输入数字时按住 Alt 键,它是 Alt 和不 Alt Gr )。