我在我的 WiX 脚本中添加了一个文件,路径名中带有字符“î”。Light.exe 会抱怨:
为字符串提供了指定数据库代码页“1252”中不可用的字符
有问题的字符是 Windows-1252 编码中的 0xEE,即 0x00EE Unicode 或 UTF-8 中的 0xC3AE。这些文件在heat.exe生成的一个wxs文件中,这个xml被编码为UTF-8。
我假设错误消息来自它尝试在数据库为 1252 时以 UTF 编码输入字符的事实?由于 Windows Installer 并不真正支持 UTF(如WiX 文档中所述),我应该使用以 1252 还是 iso-8859 编码的输入 xml?如果是这样,我可以告诉 heat.exe 对其输出使用另一种编码吗?
我的问题与此类似: 利用 heat.exe 并收获已经本地化的文件名,并使用 wix 将它们包含到 msi但不同之处在于,在这种情况下,字符是“真正的”非 ansi 字符,在我的情况下,字符可以在 1252 中正确编码,但似乎从 utf-8 输入文件的转换不起作用。