I am using following piece of code for converting to UTF 8 on Linux. Please note that for me sizeof(wchar_t) = 2 due to compiler flag
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...
}
Code is crashing at NewString for certain set of Unicode characters. Am I doing something wrong?