亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:99日期: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
相關文章:
主站蜘蛛池模板: 99在线国内精品自产拍 | 国产毛片一区 | 精品国产三级在线观看 | 免费av一区二区三区 | 免费人成年短视频在线观看免费网站 | 国产精品一区二区三 | 国内成人免费视频 | 大学生一级一片第一次欧美 | 国产大乳喷奶水在线看 | 国产麻豆视频免费观看 | 一级黄色一级片 | 国产成人久久精品区一区二区 | 国产高清精品毛片基地 | 黑人艹 | 色综合久久中文 | 男人粗大一出一进女人下面视频 | 美女国产网站 | 欧美在线观看一区二区 | 国产精品久久久久久小说 | 亚洲一区二区三区不卡视频 | 日本中文字幕乱码aa高清电影 | 性生活黄色大片 | 成人性生活视频 | 欧美精品毛片 | 日韩国产第一页 | 99久久99这里只有免费费精品 | 成人欧美一级毛片免费观看 | 九九热视频免费 | 日韩精品一区二区三区在线观看 | 嗯 用劲 好爽 好深 免费视频 | 尤物精品在线观看 | 制服丝袜第一页在线观看 | 国产日韩久久久精品影院首页 | 51精品资源视频在线播放 | 久久99国产亚洲精品观看 | 黄色毛片电影黄色毛片 | 九九视频免费观看 | 免费日韩在线 | 九九精品在线播放 | 国语对白刺激做受xxxxx在线 | 久久一区不卡中文字幕 |