gpt4 book ai didi

utf-8 - 使用 ICU 库的 UTF-16 到 UTF-8

转载 作者:行者123 更新时间:2023-12-04 18:06:54 27 4
gpt4 key购买 nike

我想将 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);

我得到字节为-(大随机数)和原始目标位置的垃圾

我错过了什么?

最佳答案

最佳做法是在指定 UErrorCode 参数的调用后检查错误。我将从那里开始。

有点像...

if (U_FAILURE(status)) 
{
std::cout << "error: " << status << ":" << u_errorName(status) << std::endl;
}

关于utf-8 - 使用 ICU 库的 UTF-16 到 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24273099/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com