Java jni字符串转换
2018-06-17 20:39:56来源:未知 阅读 ()
1、jstring转QString
对于Qt5.2以上(含)可以用QAndroidJniObject::toString(),详见这里:https://stackoverflow.com/questions/27345570/convert-jstring-to-qstring
低版本的Qt就要自己转换了,jni中有两个获取jstring的方法:
GetStringUTFChars——获取(改进的)utf8编码字符串
GetStringChars——获取unicode编码字符串,推荐用这种,因为Java内部就是unicode编码,可减少一次编码转换
1 jboolean isCopy = JNI_FALSE; 2 const jchar* value = env->GetStringChars(jstringValue, &isCopy); 3 if (value != NULL) 4 { 5 QString qsValue = QString::fromUtf16(value); 6 if (isCopy) 7 { 8 env->ReleaseStringChars(jstringValue, value); 9 } 10 }
另外关于GetStringUTFChars返回的是(改进的)utf8编码字符串,可以参考这篇文章:https://blog.wsxyeah.xyz/2016/07/23/jni-charset-encoding/
2、jstring转BSTR
因为BSTR就是unicode编码,用GetStringChars转换很方便:
1 jboolean isCopy = JNI_FALSE; 2 const jchar* paramValue = env->GetStringChars(jstrParam, &isCopy); 3 if (paramValue != NULL) 4 { 5 BSTR bstr = SysAllocString(paramValue); //使用后记得释放:SysFreeString(bstr); 6 if (isCopy) 7 { 8 env->ReleaseStringChars(jstrParam, paramValue); 9 } 10 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Z 字形变换 2020-04-14
- 翻转字符串里面的单词 2020-04-10
- 用C++实现:FJ的字符串打印 2020-04-04
- [题记]字符串转换整数-leetcode 2020-04-03
- C++ 字符串输入 2020-03-26
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash