Unicode NSI中的商标上标

Unicode NSI中的商标上标,unicode,nsis,symbols,superscript,Unicode,Nsis,Symbols,Superscript,我想在NSI脚本中添加一个商标上标 我尝试使用unicode字符作为商标-U+2122,但在运行安装程序exe时,它无法正确显示商标字符 我有以下问题: 如何在NSI中添加商标符号 我使用的是NSI编译器版本2.46。我需要升级吗 如何在NSI文件中创建(启用)unicode支持 您可以尝试使用字符0x99,Windows 1252中相当于U+2122 使用西方配置的windows,您可以使用Alt0153直接通过键盘输入它(在数字键盘上输入数字时按住Alt键,它是Alt和而不是Alt Gr)。

我想在NSI脚本中添加一个商标上标

我尝试使用unicode字符作为商标-
U+2122
,但在运行安装程序exe时,它无法正确显示商标字符

我有以下问题:

  • 如何在NSI中添加商标符号
  • 我使用的是NSI编译器版本2.46。我需要升级吗
  • 如何在NSI文件中创建(启用)unicode支持

  • 您可以尝试使用字符
    0x99
    ,Windows 1252中相当于
    U+2122


    使用西方配置的windows,您可以使用Alt0153直接通过键盘输入它(在数字键盘上输入数字时按住Alt键,它是Alt和而不是Alt Gr)。

    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