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會正確轉換它們。 –