支持混合本地字符集或 UTF-8 多语言数据库

本主题为支持混合本地字符集部署或 UTF-8(8 位 Unicode 变换格式)多语言数据库提供了指导原则。
如果您环境中的不同计算机上使用不同的本地字符集,并且这些计算机都连接到同一 Rational® ClearQuest® 数据库集,或者您已为数据库集选择了 ClearQuest UTF-8 数据代码页(65001),那么必须考虑以下字符表示问题:

在 7.0 之前的 Rational ClearQuest 版本中,除非本地字符集与 ClearQuest 数据代码页匹配,否则不允许执行写操作。 如果设置不匹配,那么仅允许只读操作。由于 ClearQuest 应用程序使用客户机或 Web 服务器的本地字符集(而不是数据库集的 ClearQuest 数据代码页)将数据写入数据库,因此只读方式很有必要。

从 V7.0 开始,Rational ClearQuest 软件处理以 Unicode 编码的数据,且其应用程序使用 ClearQuest 数据代码页将数据写入其数据库。即使本地字符集与 ClearQuest 数据代码页不匹配,这些应用程序也可以读/写方式连接到 ClearQuest 数据库。

Rational ClearQuest V7.1.1 开始,您可以为 Oracle 和 DB2 数据库集选择 UTF-8 ClearQuest 数据代码页。 UTF-8 数据代码页允许在用户数据库中进行多语言字符存储。 选择 UTF-8 作为数据代码页时,除非操作系统的本地代码页也是 UTF-8,否则您将在混合本地字符集部署环境下工作。在 Windows 系统上,操作系统的本地代码页并不是选项。

这个新功能在不同计算机使用不同本地字符集的 ClearQuest 环境中提供了很大的灵活性。但为这些环境编写的脚本和挂钩必须处理本地字符集中不包含的 ClearQuest 字符数据。必须将这些脚本和挂钩编码为支持 Unicode,以便在这些环境中充分利用此功能。

Designer 包含一个新设置:Unicode 感知。 为 V7.0 编写的挂钩可以指定从 ClearQuest API调用中返回的字符串中的字符是只能为本地字符集字符(RETURN_STRING_LOCAL),还是可以是任意 Unicode 字符(RETURN_STRING_UNICODE)。 另外,新的 API 功能还可用于控制返回字符串方式。在 RETURN_STRING_LOCAL 方式下,如果返回字符串中包含本地字符集无法表示的字符,那么 API 调用将返回异常。在 RETURN_STRING_UNICODE 方式下,API 调用将正确地返回所有字符。

为确保挂钩和脚本可处理混合本地字符集或 UTF-8 部署中的所有数据,您必须将方式设置为 RETURN_STRING_UNICODE,并正确处理可能返回的 Unicode 字符。不仅需要将返回字符串方式设置为 RETURN_STRING_UNICODE,您还必须验证您的代码能否正确处理 Unicode 字符。下列指导原则非常有用,但最终您必须使用脚本语言的相应 Unicode 编程技术。

如果要升级到 V7.0,并且环境中的所有本地字符集与 ClearQuest 数据代码页匹配(这在较早版本中很常见),那么这些更改对现有模式不会有任何影响。缺省方式为 RETURN_STRING_LOCAL,这允许挂钩和脚本能继续正常运行。

如果要将 V7.0 部署到本地字符集与 ClearQuest 数据代码页不匹配的环境中,那么必须确保您的脚本可以处理 ClearQuest 软件的 Unicode 字符数据、将脚本返回方式设置为 RETURN_STRING_UNICODE 并将程序包升级到 V7.0。有关支持 Unicode 的 ClearQuest 程序包的列表,请参阅表 1。 如果系统尝试向脚本返回本地字符集中不包含的任何字符数据,那么不能处理 Unicode 的脚本可以运行,但是会返回错误。只要将这些脚本处理的数据限制为客户机或 Web 服务器的本地字符集内的字符,那么这些脚本就可以继续正常运行。

表 1. 程序包返回字符串方式
程序包 返回字符串方式
AMWorkActivitySchedule RETURN_STRING_UNICODE
ATStateTypes RETURN_STRING_UNICODE
Attachments RETURN_STRING_UNICODE
AuditTrail RETURN_STRING_UNICODE
BTStateTypes RETURN_STRING_UNICODE
BuildTracking RETURN_STRING_UNICODE
CQTM RETURN_STRING_UNICODE
Customer RETURN_STRING_UNICODE
DeploymentTracking RETURN_STRING_UNICODE
DTStateTypes RETURN_STRING_UNICODE
EMail RETURN_STRING_UNICODE
EnhancementRequest RETURN_STRING_UNICODE
eSignature RETURN_STRING_UNICODE
History RETURN_STRING_UNICODE
Notes RETURN_STRING_UNICODE
Project RETURN_STRING_UNICODE
Resolution RETURN_STRING_UNICODE
TPM RETURN_STRING_UNICODE
在开发必须处理混合字符集部署的应用程序时,您必须考虑几个注意事项。

如果连接到数据库集或数据库部落的所有客户机的本地字符集都与数据代码页匹配,那么您不必考虑这些问题。有关字符表示和代码页设置的更多信息,请参阅“管理 Rational ClearQuest”联机帮助。


反馈