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

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

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

瀏覽:77日期: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久久 | 精品一区二区三区波多野结衣 | 麻豆视频国产 | 久久中文字幕乱码免费 | 中文字幕一区二区在线视频 | 成人午夜看片 | 亚洲精品国产一区二区三区四区 | 中文字幕亚洲另类天堂 | 99国内精品久久久久久久 | 在线a人片免费观看国产 | 男人天堂久久 | 日韩成人在线视频 | 波多野结衣免费观看视频 | 中文字幕在线观看日韩 | 国产免费人视频在线观看免费 | 久久亚洲国产成人影院 | 日本免费人成在线网站 | 欧美线在线精品观看视频 | 热re91久久精品国产91热 | 欧美日韩亚洲国产精品 | 白白在线观看永久免费视频 | 国内一级特黄女人精品片 | 久久视屏这里只有精品6国产 | 精品国产一区二区三区久 | 美日韩一区二区 | 婷婷尹人香蕉久久天堂 | 黄色激情在线 | 一级黄视频 | 她也啪在线视频 | 国产精品亚洲精品久久成人 | 中文字幕成人免费视频 | 免费人成在线观看视频不卡 | 一区二区三区网站在线免费线观看 | 高清一级毛片免免费看 | 99精品国产成人一区二区在线 | 黄毛片一级毛片 | 撸天堂| 真实国产乱人伦在线视频播放 | 欧洲一级毛片免费 | 国产精品久久久久一区二区三区 |