我有这样的代码行(由MakeMSI生成)
oRec.StringData(2) = "A publicitar a aplicação"
oRec是来自Msi数据库的记录,打开时为:
oInstaller = MkObject("WindowsInstaller.Installer")
oMsi = oInstaller.OpenDatabase(MsiName, msiOpenDatabaseModeDirect)
oMsi.OpenView(selectQuery)
执行并提交字符串“A publicitaraaplicação”在数据库中转换为“A publicitaraaplicaçao”(ã转换为a)。我100%肯定数据库是cp1252编码,因为当我编辑字段manualy并插入ã它显示良好。任何想法如何解决这个问题?
编辑: 在Portugese Windows上构建安装程序时,一切都很好
答案 0 :(得分:0)
您编辑属性的计算机的代码页是什么?
我不知道VBA是否在内部使用Unicode来存储字符串。如果是,那么它应该在任何计算机上工作;如果没有,那么它应该只在系统代码页支持'ã'的情况下正常工作。
问题的另一部分是源文件本身:要按预期工作,它应该是启用Unicode的(UTF-8或UTF-16),并且解释器应该处理它。否则,当前代码页与cp1252不兼容时,您将获得意外结果。
在Windows的区域设置中检查非Unicode程序的语言的设置。它应该设置为葡萄牙语。