从std :: wstring转换为jstring

时间:2018-01-17 11:23:41

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

我试图将wstring从我的cpp代码转换为jstring。

我知道有一个名为NewStringUTF的方法从std :: string获取jstring(当然从该字符串中获取const char *之后)。

如果输入是std :: wstring而不使用iconv,有没有办法可以做同样的事情?

2 个答案:

答案 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?

相关问题