本主题涉及当您用 C 程序设计语言为 WebSphere Message Broker 开发用户定义扩展时需要考虑的字符串处理的相关问题。
如果您使用 Java 程序设计语言开发用户定义扩展,则您可以使用标准 Java 字符串处理方法。
要同时启用 WebSphere Message Broker 代理处理所有语言的消息,用 UCS-2 Unicode 处理代理中的文本处理。UCS-2 Unicode 字符串也用于跨 Java 和 C 语言用户定义的扩展 API 来传递和返回字符数据。 属性在 XML 配置消息中以字符串接收,而不管其数据类型。如果属性的实际数据类型不是字符串,cniSetAttribute 函数在存储属性值之前必须执行必要的验证和转换。类似地,当使用 cniGetAttribute2 检索属性值时,返回结果前必须执行转换为 UCS-2 Unicode 字符串的操作。
CciChar 以 UCS-2 Unicode 表示法定义 16 位字符。 CciChar* 是这样的字符串,它的字符以 CciChar 为 0 终止。缺省情况下,CciChar 是通过类型 wchar_t 表示的。然而,一些平台没有在源代码中表示 UCS-2 常量的方便方法,通常因为 4 字节的 wchar_t 或 EBCDIC 表示法。例如,源代码常量,如 L“ABC”,在 Solaris 上扩展至 12 个字节。
出于此原因,WebSphere Message Broker 提供实用程序函数 cciMbsToUcs 和 cciUcsToMbs。在合适的地方使用这些函数以确保用户定义的节点的可移植性。