参数字符串的代码页处理

可以使用与 Windows Installer SDK 一起提供的数据库表编辑器(如 Orca)或从应用程序调用数据库函数,向安装数据库添加本地化信息。 注意仅传递使用要本地化的数据库代码页的字符串参数。 如果字符串参数包含数据库代码页无法表示的字符,则安装程序在调用 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 文本存档文件,向安装数据库添加本地化信息。 有关详细信息,请参阅导入和导出表的代码页处理