ucnv_convertEx中的ICU数据透视表缓冲区

时间:2015-10-20 07:01:17

标签: unicode icu

ICU库中的转换器ucnv_convertEx()可选地需要一个' pivot'缓冲。对应的指针可以设置为NULL,但实际的目的是什么?它更快吗?是否仅将源指针增加到最后一个转换后的字节+ 1?

是不够的

1 个答案:

答案 0 :(得分:1)

" pivot"缓冲区只是暂存空间,用于暂时保持从源到UTF-16的转换,然后从UTF-16到目标(如果源和目标之间的直接转换不存在)。也就是说,ucnv_convertEx()通过"转动"从源转换为目标。通过UTF-16。

如果您没有提供数据透视缓冲区,则会使用内部缓冲区(1024个堆栈分配UChar s)。

如果已经分配了大量空间(因此可以同时进行UTF-16的转换),或者您希望在出现错误时检查中间转换,则提供数据库缓冲区可能会更有效。