C#和Android端进行字符串传输
欢迎您成为我的读者,希望这篇文章能给你一些帮助。
0x00 前言
大家好,我是阿辉。
最近的工作在做Android手机端和C#桌面端通过蓝牙交互方面的活,碰到了一个问题,咱们今天来简单回顾下。
在C#端将字符串转换为常规的字节流,在Android端获取到字节流后,直接进行转换为字符串,发现出现乱码的情况。很纳闷,奇了怪了,不应该呀,这么简单的操作咋可能出现乱码呢。
查找资料发现,原来是JAVA和C#在对于字符串的编码问题上,存在差异。
这里强调大家,别用C#的思维去写Android的代码,有时候总会出现奇怪的问题。
在查找了资料后,确定对于字符串部分采用传统的ASCII格式来传输字节流。
C#端
//actionJob为待传输的字符串
dataBytes.AddRange(Encoding.ASCII.GetBytes(actionJob));
Android端
//m_streamBuf中是接收到的字节流
StringBuffer sb=new StringBuffer();
int actionJobLength=m_streamBuf.getShort();
char[] tChars=new char[actionJobLength];
for (int i=0;i<actionJobLength;i++){
tChars[i]=(char)m_streamBuf.get();
}
sb.append(tChars);
realTimeLocationData.dbActionJob=sb.toString();
这些知识是很简单的常识性问题,当我们在处理或者长时间没有使用的时候就会出现遗忘,那么隔一段时间来看看这些基础知识,有助于我们在解决更复杂问题时更游刃有余。
0x01 寄语
人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。
原创不易,给个关注。
我是阿辉,感谢您的阅读,如果对你有帮助,麻烦点赞、转发 谢谢。
很高兴能和您成为朋友。
「社群招小伙伴啦,唠嗑,学习讨论,不定期发红包。快来,咱们交个朋友」
很幸运自己写的文章能被大家所阅读,以后会尽量把自己所学所见的都整理汇总成文章的形式和大家进行分享,希望所表达观点或想法对大家有帮助。
为了和大家能有更近一步的认识,Andy阿辉的知识交流群招人了,感兴趣的朋友可以扫码加入,很高兴能和大家成为朋友。
寄语
人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。
原创不易,给个关注。
我是阿辉,感谢您的阅读,如果对你有帮助,麻烦点赞、转发 谢谢。
很高兴能和您成为朋友。