我试图将wstring从我的cpp代码转换为jstring。
我知道有一个名为NewStringUTF的方法从std :: string获取jstring(当然从该字符串中获取const char *之后)。
如果输入是std :: wstring而不使用iconv,有没有办法可以做同样的事情?
答案 0 :(得分:1)
JNI具有NewString(JNIEnv * , const jchar * ,
jsize)功能。如果您的std::wstring::c_str()
返回与 jchar * 兼容的指针(这取决于您的平台),则可以尝试此功能。请注意,如果您的 wchar_t 是32位(如在Linux上),则无法直接使用它。有关详细信息,请参阅 Android JNI - Reliable way to convert jstring to wchar_t 和 How do I convert jstring to wchar_t * 。
答案 1 :(得分:0)
简单的形式是将std :: wstring转换为std :: string以使用NewStringUTF。
这里有一个转换线程 How to convert wstring into string?