1
我的代码(由MAKEMSI产生),例如线MSI DB,Visual Basic和CP1252编码的字符串的问题
oRec.StringData(2) = "A publicitar a aplicação"
OREC是从MSI数据库记录,开设有:
oInstaller = MkObject("WindowsInstaller.Installer")
oMsi = oInstaller.OpenDatabase(MsiName, msiOpenDatabaseModeDirect)
oMsi.OpenView(selectQuery)
执行后并且提交字符串“A publicitar aaplicação”在数据库中被转换为“A publicitar aaplicaçao”(ã被转换为a)。我100%肯定数据库是cp1252编码,因为当我编辑领域manualy和插入ã它很好地显示。任何想法如何解决这个问题?
编辑: 在构建安装程序在葡萄牙的Windows一切都好
感谢帮助。你有什么想法,如何构建两种编码的自动安装程序?即我想一次制作波兰语(cp1250)安装程序和portugese(cp1252)。有没有什么办法来禁用vba“字符串”检查,并将其视为字节?有没有办法阻止这种转换? –
@Kamil我不知道如何让VBA使用Unicode字符串,我甚至不知道它是否真的支持它。但是,您可以尝试以UTF-8编码保存脚本,以便字符串采用Unicode格式,并且应该可以正常工作:MSI会正确转换它们。 –