我正在使用basic_string<wchar_t>
类型,需要将其转换为jstring以通过JNI层。我想知道最好的办法是什么。我有一个函数可以从std::string
类型中为我提供basic_string<wchar_t>
,因此对此的答案也很酷。
干杯。
答案 0 :(得分:5)
您需要将std :: basic_string转换为UTF-8。看看你的wstring - &gt;字符串转换。
Sun有一个JNI教程,展示如何将char *转换为jstring(使用一些UTF转换例程)。你可以使用你的wstring-&gt;字符串,然后将string.c_str()传递给NewStringUTF函数:
未经测试的代码:
JNIEXPORT jstring JNICALL StringTest(JNIEnv *env) {
const char* test = "something";
return env->NewStringUTF(test);
}