ucnv_convertEx 中的 ICU 枢轴缓冲区
ICU Pivot Buffer in ucnv_convertEx
ICU 库中的转换器 ucnv_convertEx()
可选地需要一个 'pivot' 缓冲区。相应的指针可能设置为 NULL
,但这样做的实际目的是什么?它更快吗?不将源指针递增到最后一个转换字节 + 1 还不够吗?
"pivot" 缓冲区只是临时 space 用于临时保存从源到 UTF-16 的转换,然后从 UTF-16 到目标(如果直接转换源和目标之间不存在)。即ucnv_convertEx()
通过UTF-16"pivoting"从源转换为目标。
如果您不提供数据透视缓冲区,则使用内部缓冲区(1024 个堆栈分配的 UChar
s)。
如果您已经分配了大量 space(因此与 UTF-16 的转换是一次性发生的),或者您想要检查中间值,则提供数据透视缓冲区可能会更有效如有错误请转换。
ICU 库中的转换器 ucnv_convertEx()
可选地需要一个 'pivot' 缓冲区。相应的指针可能设置为 NULL
,但这样做的实际目的是什么?它更快吗?不将源指针递增到最后一个转换字节 + 1 还不够吗?
"pivot" 缓冲区只是临时 space 用于临时保存从源到 UTF-16 的转换,然后从 UTF-16 到目标(如果直接转换源和目标之间不存在)。即ucnv_convertEx()
通过UTF-16"pivoting"从源转换为目标。
如果您不提供数据透视缓冲区,则使用内部缓冲区(1024 个堆栈分配的 UChar
s)。
如果您已经分配了大量 space(因此与 UTF-16 的转换是一次性发生的),或者您想要检查中间值,则提供数据透视缓冲区可能会更有效如有错误请转换。