參數字串的字碼頁處理
您可以使用隨附于 Windows Installer SDK 的資料庫資料表編輯器,或從應用程式呼叫 Database Functions ,將當地語系化資訊新增至安裝資料庫。 請小心只傳遞使用當地語系化資料庫字碼頁的字串參數。 如果字串參數包含資料庫字碼頁無法表示的字元,則安裝程式會在呼叫 MsiDatabaseImport時傳回錯誤。 如需數值字碼頁的清單,請參閱 當地語系化錯誤和 ActionText 資料表。
如需詳細資訊,請參閱 判斷安裝資料庫的字碼頁。
將當地語系化資訊新增至資料庫
當您將當地語系化資訊新增至資料庫時,作業系統必須支援資料庫的字碼頁。 它不需要是系統的目前字碼頁。 IsValidCodePage 必須針對資料庫字碼頁傳回 TRUE 。 因為系統會將 ANSI 字串轉換成 Unicode,所以如果目前的使用者字碼頁與資料庫字碼頁不同,就會發生錯誤。
呼叫 Windows Installer API 的 ANSI 版本,會使用目前的系統字碼頁,將當地語系化字串轉換為 Unicode。 認可資料庫時,Unicode 字串會使用資料庫的字碼頁轉換成 ANSI。 如果目前的系統字碼頁與當地語系化字串的字碼頁不同,結果可能會遺失資料和不正確的字串轉換。
下列程式示範如何儲存當地語系化資料。
儲存當地語系化資料
- 將資料庫的字碼頁設定為當地語系化字串的字碼頁。
- 使用 MultiByteToWideChar 函式,將 ANSI 字串轉換為 Unicode,並指定當地語系化資料的字碼頁。
- 使用 Unicode 字串新增當地語系化資料,呼叫 Windows Installer API 的 Unicode 版本。
- 使用 MsiDatabaseCommit認可資料庫的當地語系化變更。
您也可以藉由匯入和匯出 ASCII 文字封存檔案,將當地語系化資訊新增至安裝資料庫。 如需詳細資訊,請參閱 匯入和匯出資料表的字碼頁處理。