安装包要支持日文,中文,和英文。
对于这种情况,如果使用shift-jis保存nsis脚本的话,就会出现中文乱码的问题。
针对这种情况,经过不断地尝试,需要将nsis脚本保存为utf-8 BOM格式。这样就能够支持中文 英文和日文了。
在 NSIS 中使用 LangString 实现多语言切换时,中文出现乱码的核心原因是 编码不匹配(NSIS 默认使用 ANSI 编码,而中文需要指定 UTF-8 或 GB2312 编码),而非 LangString 语法本身问题。以下是具体原因分析和完整解决方案:
一、乱码根源:NSIS 编码机制与中文需求不匹配
NSIS 历史版本默认采用 ANSI 编码(不同系统的 ANSI 编码不同,如中文 Windows 是 GB2312,日文 Windows 是 Shift_JIS),但:
- 若脚本文件保存为 UTF-8(无 BOM)或其他编码,NSIS 编译器无法正确解析中文字符,导致乱码;
- 即使脚本编码正确,若未在脚本中明确指定“中文语言对应的编码”,NSIS 会用默认 ANSI 处理,仍可能因系统编码差异出错。
二、完整解决方案:
NSIS 对中文的兼容性最佳编码是 UTF-8 with BOM(带字节顺序标记),主流编辑器(VS Code、Notepad++、Sublime)均支持:
- Notepad:点击菜单栏「另存为」→ 选择「UTF-8-BOM」;
注意:若脚本中同时包含日文、英文,UTF-8-BOM 可兼容所有语言,无需切换编码。

1361

被折叠的 条评论
为什么被折叠?



