Java 从基本字符串到jstring的转换

Java 从基本字符串到jstring的转换,java,c++,string,java-native-interface,Java,C++,String,Java Native Interface,我使用的是basic_string类型,需要将其转换为jstring以通过JNI层。我想知道最好的方法是什么。我有一个函数可以从我的basic_string类型中给我一个std::string,所以回答这个问题也很酷 干杯。您需要将std::basic\u字符串转换为UTF-8。查看wstring->string转换的作用 Sun有一个JNI教程,展示了如何将char*转换为jstring(使用一些UTF转换例程)。您可以使用wstring->string,然后将string.c_str()传递

我使用的是
basic_string
类型,需要将其转换为jstring以通过JNI层。我想知道最好的方法是什么。我有一个函数可以从我的
basic_string
类型中给我一个
std::string
,所以回答这个问题也很酷


干杯。

您需要将std::basic\u字符串转换为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);
}

请注意,
std::basic_string
的类型定义为
std::wstring
。可能的重复我正试图做相反的事情,我试图看看是否可以避免在其中的任何地方使用字符*。可能的重复需要常量字符*。如果我需要从std::string转换怎么办?@Igor使用std::string成员.c_str()。