我想将UTF-16字符串转换为UTF-8。在Unicode的推荐下,我使用了ICU库。但是由于默认编码格式是UTF-16,我在进行转换时遇到了问题。我尝试使用转换器:
UErrorCode myError = U_ZERO_ERROR;
UConverter *conv = ucnv_open("UTF-8", &myError);
int32_t bytes = ucnv_fromUChars(conv, target, 0, (UChar*)source, numread, &myError);
char *targetLimit = target + reqdLen;
const UChar *sourceLimit = mySrc + numread;
ucnv_fromUnicode(conv,&target, targetLimit, &mySrc, sourceLimit, NULL, TRUE, &myError);
我在原始目标位置收到了-(大随机数)字节和垃圾数据。我缺少什么?