我是 ICU(IBM 的 unicode 库)的新手。我正在分块读取一个大文件,并尝试将其从 UTF-8 转换为 UTF-16。
我正在使用 ucnv_toUnicode,我遇到了一个问题:如何确定转换器写入目标的字节数?
ucnv_toUnicode(conv, &target, targetLimit,
&source, sourceLimit, NULL,
feof(f)?TRUE:FALSE,
&status);
目标是一个 4096 字节的缓冲区。
根据 api 文档,它会被 ucnv_toUnicode 移动到最后一个 UChar 复制之后的位置。似乎我应该能够在目标和原始位置之间进行某种算术来确定这一点,但我是 C 的新手。有人可以帮帮我吗?
现在假设我想 fwrite() 放入目标中的内容。对于单位的大小和数量,我会传递给 fwrite 什么?