从 std::wstring 转换为 jstring

convert to jstring from std::wstring

本文关键字:jstring 转换 wstring std      更新时间:2023-10-16

我正在尝试将 wstring 从我的 cpp 代码转换为 jstring。

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

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

JNI 有 NewString(JNIEnv * , const jchar * , jsize) 函数。如果您的std::wstring::c_str()返回与jchar*兼容的指针(这取决于您的平台),则可以尝试使用此函数。请注意,如果您的wchar_t是 32 位(如在 Linux 上),则不能直接使用它。请参阅Android JNI - 将jstring 转换为 wchar_t 的可靠方法和如何将 jstring 转换为 wchar_t *了解更多信息。

简单的形式是将 std::wstring 转换为 std::string 以使用 NewStringUTF。

在这里,您有一个带有转换的线程 如何将 wstring 转换为字符串?