ACINlsCharSetConvert()

ACINlsCharSetConvert()

作用:

将srcid指定的字符集中src指向的字符串转换为dstid指定的字符集中dst指向的数组。 当转换达到源或目标的数据大小限制时,转换将停止。 该函数返回转换为目标缓冲区的字节数。

语法:

sword ACINlsCharSetConvert ( void          *hndl,
                             ACIError      *errhp,
                             ub2            dstid,
                             void          *dstp,
                             size_t         dstlen,
                             ub2            srcid,
                             const void    *srcp,
                             size_t         srclen,
                             size_t        *rsize );

参数:

  • hndl (IN/OUT)

ACI环境或用户会话句柄。 如果句柄无效,则该函数返回ACI_INVALID_HANDLE。

  • errhp (IN/OUT)

错误句柄,该接口调用失败时,错误信息会存在该句柄上 ,调用ACIErrorGet()获得错误信息。

  • dstid (IN)

目标缓冲区的字符集ID。

  • dstp (OUT)

指向目标缓冲区的指针。

  • dstlen (IN)

目标缓冲区的最大大小(以字节为单位)。

  • srcid (IN)

源缓冲区的字符集ID。

  • srcp (IN)

指向源缓冲区的指针。

  • srclen (IN)

源缓冲区的长度(以字节为单位)。

  • rsize (OUT)

转换的字符数。 如果指针为NULL,则不返回任何内容。

说明:

尽管可以将源字符集ID或目标字符集ID指定为ACI_UTF16ID,但是原始数据和转换后的数据的长度以字节表示,而不是字符数。 请注意,转换遇到空数据时不会停止。 要从字符集名称获取字符集ID,请使用 ACINlsCharSetNameToId 。 若要检查目标缓冲区中的派生数据是否包含替换字符,请使用 ACICharSetConversionIsReplacementUsed 。 缓冲区应与适合字符集的字节边界对齐。 例如,必须使用ub2数据类型才能将字符串保存在UTF-16中。

返回值:ACI_SUCCESS 或 ACI_ERROR 或 转换成功的字节数.