国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

瀏覽:84日期: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
相關文章:
主站蜘蛛池模板: 免费一级视频在线播放 | 亚洲激情黄色 | 全国男人的天堂天堂网 | 日本天堂免费 | avtom影院入口永久在线观看 | 国产一级毛片国语版 | 亚洲国产精品a一区二区三区 | 美女被男人cao的爽视频黄 | 日韩视频一区二区三区 | 亚州综合 | 国产va免费精品高清在线观看 | 欧美一级高清片免费一级 | 亚洲第一区香蕉_国产a | a级片在线免费播放 | 国产日韩一区二区三区在线观看 | 一区二区三区不卡视频 | 毛片免费视频网站 | 99精品视频在线观看免费 | 高清一区二区三区免费 | 特黄特黄 | 亚洲男人的天堂久久香蕉 | 呦女精品 | 香蕉视频亚洲一级 | 日韩特级片| 美女毛片免费看 | 亚洲成a人片在线v观看 | 深夜福利网址 | 99r8这是只有精品视频9 | 成 人 a v黄 色| 欧美一级一片 | 欧美亚洲另类在线 | 国产视频手机在线 | 日本三级网站在线线观看 | 久久成人国产 | 欧美成人免费全部观看天天性色 | 中文字幕在线看片成人 | 99热久久国产精品免费观看 | 九九国产精品 | 国产99视频精品免费视频免里 | 男女很舒服爽视频免费 | 国产美女精品三级在线观看 |