在某些机器上,我的 NSIS 安装程序会使用一个错误的字符创建文件夹。
NSIS 应该使用ń char创建一个文件夹
// U+0144 ń c5 84 LATIN SMALL LETTER N WITH ACUTE
而是用ñ char创建了一个文件夹
// U+00F1 ñ c3 b1 LATIN SMALL LETTER N WITH TILDE
有线部分仅在某些机器上发生,我无法重现。据我所知,这仅针对 Windows Vista(可能是基本版)进行了报道。
我怀疑这与 Windows-1250 到 UTF 的转换有关。因为 NSIS 仍然不支持 UTF,所以我使用的是 Windows-1250 编码的脚本文件。ń char 是并且0xF1
应该被翻译为 UTF U+c584
,但安装程序会使用U+c3b1
char 创建文件夹。另一方面,U+c3b1
相当于 Windows-1252 0xF1
。
当编译的安装程序运行时,什么可能会影响 NSIS 脚本中使用的字符的解释?如何确保预期的转化0xF1
=> U+c584
?