从basic_string到jstring的转换

Conversion from basic_string to jstring

本文关键字:jstring 转换 string basic      更新时间:2023-10-16

我使用的是basic_string<wchar_t>类型,需要将其转换为jstring以通过JNI层。我想知道最好的方法是什么。我有一个函数可以从我的basic_string<wchar_t>类型中得到一个std::string,所以它的答案也会很酷。

欢呼。

您需要将std::basic_string转换为UTF-8。查看一下wstring -> string转换的作用。

Sun有一个JNI教程,展示了如何将char*转换为jstring(使用一些UTF转换例程)。您可以使用wstring->string,然后将string.c_str()传递给NewStringUTF函数:

未测试的代码:

JNIEXPORT jstring JNICALL StringTest(JNIEnv *env) {
    const char* test = "something";
    return env->NewStringUTF(test);
}