午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

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

瀏覽:181日期: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
相關文章:
主站蜘蛛池模板: 日韩欧美视频在线播放 | 激情综合区 | 黄色免费一级片 | 国产精品自拍偷拍 | 黄色免费看网站 | 九九国产精品视频 | 国产性色av| 久久这里只有精品6 | 一个色在线视频 | 四虎网站最新网址 | 香蕉视频在线观看黄 | 韩国一级黄色片 | 岛国精品在线 | 91精品久久香蕉国产线看观看 | 爱草av| 欧美另类精品 | 粉嫩av一区二区夜夜嗨 | 久久综合免费视频 | 播播网色播播 | 日本亚洲欧美在线 | 成人网在线免费观看 | 国产成人免费 | 在线免费观看av网址 | 日韩在线视频网站 | 亚洲欧美国产高清va在线播放 | 婷婷色五 | 欧美黄色一级网站 | 成人va视频| 91成人久久| 精品久久久久久久久久久国产字幕 | 久艹精品| 欧美日韩不卡在线 | 精品福利在线观看 | 2020国产精品视频 | 懂色av蜜臀av粉嫩av永久 | 日韩中文字幕久久 | 国产在线视频不卡 | 极品蜜桃臀肥臀-x88av | 成年免费视频黄网站在线观看 | 亚洲不卡一 | 欧美激情性做爰免费视频 |