设置数据库的代码页面
添加任意本地化信息之前,始终应设置数据库的代码页面。 不建议在将数据输入到数据库后尝试设置代码页面,因为此举可能会损坏扩展字符。 通过从非特定于代码页面的数据库开始处理,可大幅简化本地化。 有关详细信息,请参阅使用中性代码页面创建数据库。 你可确定数据库的当前代码页面,如确定安装数据库的代码页面中所述。 有关数字代码页面的列表,请参阅对错误表和 ActionText 表进行本地化。
可通过导入具有非中性代码页面且附带 MsiDatabaseImport 的非中性代码页面的文本存档文件,来设置空白数据库的代码页面或具有中性代码页面的数据库的代码页面。 此操作会将数据库的代码页面设为已导入文件的代码页面。 后续导入数据库的所有存档文件均须具有与第一个文件相同的代码页面。 如果从数据库导出了文本存档文件,则此存档文件的代码页面与父数据库的代码页面相同。 请参阅导入与导出表的代码页面处理。
通过使用 MsiDatabaseImport 导入采用以下格式的文本存档文件,可将任意数据库的代码页面设为指定的数字代码页面:两个空白行;后跟一行,其中包含数字代码页面、制表符分隔符和实际字符串:_ForceCodepage。 请注意,对于 Windows 2000,此操作会将数据库中的所有字符串转换为 _ForceCodepage 的代码页面。 对现有数据库进行本地化并将所有非中性字符串转换为新代码页面时,或许适合如此操作。 但是,如果数据库包含未转换的非中性字符串,则会导致错误。
实用工具 WiLangId.vbs 提供了如何使用 Import 方法来设置某一包的代码页面的示例。 Windows Installer SDK 中提供了 WiLangId.vbs 的副本。 可使用此实用工具来确定数据库 (Package) 支持的语言版本、安装程序用于用户界面中未写入数据库 (Product) 的任意字符串的语言,或是字符串池 (Codepage) 的单个 ANSI 代码页面。 有关使用 WiLangId.vbs 的信息,请参阅帮助页面:管理 Language 和 Codepage。
若要确定 Product、Package 和 Codepage 的值,请按如下所示运行 WiLangId.vbs。
cscript wilangid.vbs [数据库路径]
若要设置包的 Codepage,请运行以下命令行。
cscript wilangid.vbs [数据库路径] Codepage [值]
例如,若要将 test.msi 的 Codepage 设为数字型 ANSI 代码页面值 1252,则请运行以下命令行。
cscript wilangid.vbs c:\temp\test.msi Codepage 1252