C#和Android端进行字符串传输

614b8ff862c45932f401d2f4a7f79d8e.png

欢迎您成为我的读者,希望这篇文章能给你一些帮助。

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 寄语

人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。

原创不易,给个关注。

707e6449a0568f2ff854138b4ca8a719.gif

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值