匯入和匯出資料表的字碼頁處理
您可以使用 MsiDatabaseExport 和 MsiDatabaseImport匯入和匯出 ASCII 文字封存檔案,將當地語系化資訊新增至安裝資料庫。 因為資料庫字串集區使用 ANSI 字碼頁,所以資料庫和匯出的 文字封存檔案 都有字碼頁。
從資料庫匯出 文字封存檔案 時,封存檔案的字碼頁與父資料庫相同。 如需數值字碼頁的清單,請參閱 當地語系化 Error 和 ActionText 資料表。
注意
將資料表匯出至文字封存檔案會轉譯控制字元,以避免與檔案分隔符號發生衝突。
ASCII 文字封存檔案
MsiDatabaseExport匯出的 ASCII文字封存檔案會以下列格式說明:
- 第一行會寫入資料表資料行的名稱。
- 資料行格式會寫入第二行。
- 如果資料表只包含 ASCII 資料,文字檔的第三行就是資料表名稱,後面接著主鍵清單。
- 如果資料表包含非 ASCII 資料,且資料庫以數值字碼頁加上戳記,則字碼頁碼會出現在第三行的開頭。
- 如果資料庫包含非 ASCII 資料,但資料庫未加上數位字碼頁戳記,則目前的系統字碼頁碼會在第三行的開頭寫入。
- 文字檔的其餘行是指定字碼頁中的資料。
- 如果資料表包含資料流程, MsiDatabaseExport 會將 資料表中的每個資料流程匯出至個別的檔案。
中性和非中性字碼頁
您可以從具有中性字碼頁的資料庫開始,協助當地語系化:
- 空白資料庫具有中性字碼頁。
- 不包含擴充字元的資料庫,要求 ASCII 中表示字碼頁具有中性字碼頁。
如需詳細資訊,請參閱 使用中性字碼頁建立資料庫。
中性和非中性字碼頁具有下列特性:
- 如果將具有非中性字碼頁的 文字封存檔案 匯入具有不同非中性字碼頁的資料庫,則當呼叫 MsiDatabaseImport 時,安裝程式會傳回錯誤。
- 具有中性字碼頁的 文字封存檔案 可以匯入具有任何字碼頁的資料庫。
- 具有任何字碼頁的 文字封存檔案 可以匯入具有中性字碼頁的資料庫。
- 使用中性字碼頁將 文字封存檔 案匯入資料庫中,會將資料庫的字碼頁設定為封存檔案字碼頁。 後續匯入資料庫的所有封存檔案都必須有與第一個檔案相同的字碼頁。
如需詳細資訊,請參閱 判斷安裝資料庫字碼頁 和 設定資料庫的字碼頁。
MsiDatabaseExport匯出的文字封存檔案可以與版本控制系統搭配使用。 使用 Database Functions 或資料庫資料表編輯器來編輯資料庫。
您可以使用資料庫資料表編輯器或 Windows Installer API,將當地語系化資訊新增至安裝資料庫。 如需詳細資訊,請參閱 參數字串的字碼頁處理。