从basic_string转换为jstring

时间:2011-08-08 23:18:48

标签: java c++ string java-native-interface

我正在使用basic_string<wchar_t>类型,需要将其转换为jstring以通过JNI层。我想知道最好的办法是什么。我有一个函数可以从std::string类型中为我提供basic_string<wchar_t>,因此对此的答案也很酷。

干杯。

1 个答案:

答案 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);
}