参数字符串的代码页处理

可以使用随 Windows Installer SDK 提供的数据库表编辑器(如 Orca)或从应用程序调用 数据库 Functions,将本地化信息添加到安装数据库。 请注意,仅传递使用正在本地化的数据库的代码页的字符串参数。 如果字符串参数包含数据库代码页无法表示的字符,则安装程序在调用 msiDatabaseImport时返回错误。 有关数字代码页的列表,请参阅 本地化错误表和 ActionText 表

有关详细信息,请参阅 确定安装数据库的代码页

将本地化信息添加到数据库

向数据库添加本地化信息时,作系统必须支持数据库的代码页。 它不必是系统的当前代码页。 IsValidCodePage 必须返回数据库代码页的 TRUE 。 由于系统将 ANSI 字符串转换为 Unicode,因此,如果当前用户代码页与数据库代码页不同,则会出现错误。

调用 Windows Installer API 的 ANSI 版本会使用当前系统代码页将本地化字符串转换为 Unicode。 提交数据库后,Unicode 字符串将使用数据库的代码页转换为 ANSI。 如果当前系统代码页不同于本地化字符串的代码页,则结果可能是数据丢失和字符串转换不正确。

以下过程演示如何存储本地化数据。

存储本地化数据

  1. 将数据库的代码页设置为本地化字符串的代码页。
  2. 使用 MultiByteToWideChar 函数将 ANSI 字符串转换为 Unicode,并指定本地化数据的代码页。
  3. 使用 Unicode 字符串添加本地化数据,调用 Windows Installer API 的 Unicode 版本。
  4. 使用 MsiDatabaseCommit提交数据库的本地化更改。

还可以通过导入和导出 ASCII 文本存档文件将本地化信息添加到安装数据库。 有关详细信息,请参阅 导入和导出表的代码页处理。