ICU库中的转换器ucnv_convertEx()
可选地需要一个' pivot'缓冲。对应的指针可以设置为NULL
,但实际的目的是什么?它更快吗?是否仅将源指针增加到最后一个转换后的字节+ 1?
答案 0 :(得分:1)
" pivot"缓冲区只是暂存空间,用于暂时保持从源到UTF-16的转换,然后从UTF-16到目标(如果源和目标之间的直接转换不存在)。也就是说,ucnv_convertEx()
通过"转动"从源转换为目标。通过UTF-16。
如果您没有提供数据透视缓冲区,则会使用内部缓冲区(1024个堆栈分配UChar
s)。
如果已经分配了大量空间(因此可以同时进行UTF-16的转换),或者您希望在出现错误时检查中间转换,则提供数据库缓冲区可能会更有效。