从basic_string转换为jstring

spa*_*der 9 c++ java string java-native-interface

我正在使用一个basic_string<wchar_t>类型,需要将其转换为jstring以通过JNI层.我想知道最好的办法是什么.我有一个功能,可以给我一个std::string我的basic_string<wchar_t>类型,所以答案也很酷.

干杯.

Tim*_*ner 8

您需要将std :: basic_string转换为UTF-8.看看你的wstring - >字符串转换是做什么的.

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);
}
Run Code Online (Sandbox Code Playgroud)

  • @Igor使用std :: string成员.c_str(). (2认同)