久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

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

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

瀏覽:104日期: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 | 91亚洲国产成人久久精品网站 | 91色视频在线观看 | 久久亚| 国产欧美日韩综合精品一区二区 | 日韩一区二区在线观看 | 成人深夜福利在线观看 | 久久免费精品视频 | 日韩城人网站 | 一级片网| 青青草久久久 | 91亚洲狠狠婷婷综合久久久 | 在线观看你懂的视频 | 国产在线不卡一区 | 欧美成人精品激情在线观看 | 日韩成人不卡 | 日韩国产欧美一区 | 日韩专区中文字幕 | 日本精品一区二区三区在线观看视频 | 国产一区二精品区在线 | 久草天堂 | 久久国产一区二区三区 | 日本精品视频网站 | 欧美一区二区在线视频 | 国产一区二区精品久久 | 日本二区在线观看 | 欧美在线观看一区 | 国产精品视屏 | 亚洲第一av网站 | 日韩一区二区免费视频 | 日韩一区二区在线视频 | 国产精品成av人在线视午夜片 | 国产午夜精品一区二区三区 | 日韩一区二区免费视频 | 国产麻豆一区二区三区 | 99国产视频| 亚洲日本乱码在线观看 | 91在线免费视频 | 亚洲精品国产剧情久久9191 | 久久青草国产 | 九九热免费看 |