代码页处理 (Windows Installer)
Windows Installer 将所有数据库字符串存储在单个共享字符串池中,以降低数据库大小并提高性能。 有关数字代码页的列表,请参阅将错误和 ActionText 表本地化。
有关详细信息,请参阅确定安装数据库的代码页。
Windows Installer 使用 IsValidCodePage 来确定代码页是否有效。
将 Windows Installer 包本地化
如果本地化 Windows Installer 包,则可能涉及修改数据库表中的信息、将表导出到 ANSI 文本存档文件,然后将存档文件导入正在本地化的数据库中。 还可以使用数据库表编辑器或数据库函数向数据库添加本地化更改。 在对数据库进行任何本地化更改之前,必须设置正在本地化的数据库的代码页。 请勿在本地化数据库后设置数据库的代码页,因为这可能会损坏扩展字符。 有关详细信息,请参阅设置数据库的代码页。
处理代码页的建议方法是创作一个仅包含可转换为任何代码页的字符的非特定数据库。 有关详细信息,请参阅创建具有非特定代码页的数据库。
如果使用数据库存档文件添加本地化信息,则可以使用 MsiDatabaseExport 从包含对 ANSI 文本存档文件的本地化更改的数据库导出表,然后将这些内容导入到使用 MsiDatabaseImport 进行本地化的数据库。 导出存档文件的代码页始终与其父数据库相同。 导入文件的代码页和接收该文件的数据库的代码页必须相同,或者两个代码页中至少有一个是非特定的。 有关详细信息,请参阅导入和导出表的代码页处理。
如果使用文本编辑器或数据库函数添加本地化信息,请注意仅将字符串参数传递给使用正在本地化的数据库的代码页的 Windows Installer API。 如果字符串参数包含数据库代码页未表示的字符,则调用 MsiDatabaseCommit 时会发生错误。 有关详细信息,请参阅参数字符串的代码页处理。
如果使用一个包来安装产品的多种语言版本,则用于本地化字符串的转换也可以更改数据库的代码页。