NSIS安装器重音字母显示异常(é显示为é),如何修复?
解决NSIS安装程序中MIT许可证特殊字符显示乱码问题
出现é显示为é的问题,本质是UTF-8编码的字符被当成ANSI解析导致的乱码——即使开启了Unicode True,如果文件编码或读取方式不对,依然会出问题。可以按以下步骤修复:
确保许可证文件编码为UTF-8带BOM
大多数文本编辑器默认保存的UTF-8文件不带BOM,NSIS在Unicode模式下读取这类文件时,可能无法正确识别编码。用记事本打开许可证文件,选择「另存为」,编码选择「UTF-8」(记事本的UTF-8选项默认带BOM),替换原文件。在脚本中明确指定许可证文件的编码
如果调整文件编码后仍有问题,在调用LicenseData指令时,添加/UTF8参数强制指定编码:Unicode True ; 其他配置... LicenseData /UTF8 "path/to/your/license.txt"这个参数会让NSIS直接以UTF-8格式读取文件,无需依赖BOM识别。
升级到NSIS 3.x版本
NSIS 2.x对Unicode的支持不完善,即使配置了Unicode True,处理特殊字符时仍可能有bug。如果你的NSIS版本低于3.x,升级到最新稳定版再测试。备选:用Unicode转义字符替代特殊字符
如果上述方法都不生效,可以直接在脚本的LangString中用Unicode转义码代替é,比如:LangString LICENSE_TEXT ${LANG_ENGLISH} "Copyright (c) 2024 JasperD\u00E9\n..." LicenseData ${LICENSE_TEXT}\u00E9就是é的Unicode转义表示,能确保字符正确显示。
内容的提问来源于stack exchange,提问作者JasperDG
相关产品推荐
相关产品推荐

