亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

android - JNI c語言里的char數組怎么轉成java的char數組?

瀏覽:109日期:2024-02-28 15:48:36

問題描述

java的實體里定義的char[] name JNI定義結構體屬性char[] name將結構體屬性值(中文)傳給java是亂碼,怎么解決?不要讓我改變屬性類型!

問題解答

回答1:

參考一下這篇文章

要先搞清楚兩邊分別是什么編碼。

回答2:

C中的char[]字符串,默認情況下是UTF-8編碼的可以通過JNIEnv的NewStringUTF()函數將C中的char[]字符串轉為Java的字符串,這個函數的簽名為:

jstring NewStringUTF(const char* bytes)回答3:

看個最簡單的例子:

JNIEXPORT jstring JNICALL Java_com_example_gnaix_ndk_NativeMethod_getString(JNIEnv *env, jclass object, jstring str){ //1. 將unicode編碼的java字符串轉換成C風格字符串 const char *buf_name = env->GetStringUTFChars(str, 0); if(buf_name == NULL){return NULL; } int len = strlen(buf_name); char n_name[len]; strcpy(n_name, buf_name); //2. 釋放內存 env->ReleaseStringUTFChars(str, buf_name); //3. 處理 n_name='ro.serialno' char buf[1024]; __system_property_get(n_name, buf); LOGD('serialno : %s', buf); //4. 去掉尾部'0' int len_buf = strlen(buf); string result(buf, len_buf); return env->NewStringUTF(result.c_str());}

標簽: java
相關文章:
主站蜘蛛池模板: 亚洲成a人片在线观看中文 亚洲成a人片在线观看中文!!! | 久久亚洲国产精品一区二区 | 成年人福利视频 | 亚洲毛片免费视频 | 手机亚洲第一页 | 国产精品视频久久 | 全免费a级毛片免费毛视频 全午夜免费一级毛片 | 日韩不卡在线 | 中文字幕亚洲欧美日韩不卡 | 美女图片1314mm爽爽爽 | 色综合夜夜嗨亚洲一二区 | 韩国免费播放一级毛片 | 欧美三级不卡视频 | 一级黄片毛片 | 美女被拍拍拍拍拍拍拍拍 | aaa一级毛片免费 | 欧美成年 | 不卡一区在线观看 | 国内精品一区二区 | 一级特色黄大片 | 精品欧美一区二区在线观看 | 亚洲 自拍 另类 欧美 综合 | 日本国产在线视频 | 国产欧美一区二区三区在线 | gogo999亚洲肉体艺术大胆 | 又黄又湿又爽 | 午夜精品同性女女 | 国产欧美一区二区三区沐欲 | 亚洲国产天堂久久九九九 | 中文字幕中文字幕中中文 | 毛片观看网址 | 国产精品a人片在线观看 | 亚洲午夜久久久久国产 | 在线成年人网站 | 一级无毛片| 二区久久国产乱子伦免费精品 | 欧美一级高清黄图片 | 亚洲永久免费 | 国产婷婷一区二区在线观看 | 日韩精品一级a毛片 | 久草视频网址 |