NewString崩溃为Unicode字符

时间:2015-12-14 13:10:42

标签: java-native-interface utf

我正在使用以下代码片段在Linux上转换为UTF 8。请注意,对于我来说,由于编译器标志

,sizeof(wchar_t)= 2
void convert(const wchar_t* data, size_t len)
{
ASSERT(sizeof(wchar_t) == sizeof(jchar));

JNIEnv* env = GetEnv();
JString jstr = env->NewString((const jchar *)data, len);

int cbMLen = jStr.GetStringUTFLength();

char* pUTF8Str = new (std::nothrow) char[cbLen + 1];
//IFALLOCFAILED_EXIT(pUTF8String);

strncpy_s(pUTF8Str, cbLen + 1, jStr.GetUTFString(), cbLen);
// release memory...
}

对于某些Unicode字符集,代码在NewString处崩溃。我做错了吗?

0 个答案:

没有答案