jstring 对应java的 String 这个大家都知道
但是jstring 与wchar_t有何关系呢,这是个挺纠结的问题,最近一个项目的jni 的字符处理 全部要使用wchar_t,且要与java 通讯
首先 第一个想法,自然是百度,找到可以通过
GetStringLength
GetStringChars
先获取到jchar*,转定义看下jchar定义
16 bits双字节,哦耶wchar_t也是双字符(win下的习惯),这下好解决了直接按网上给的代码直接强转 然后memcpy
看样子分分钟就解决了。
网上源码:
1 wchar_t* w2js(JNIEnv* env, jstring str) 2 { 3 int len = env->GetStringLength(str); 4 wchar_t *w_buffer = new wchar_t[len]; 5 memset(w_buffer,0,len+1); 6 w_buffer[len]='