如何让byte数组转换为String字符串时候去除乱码的问号

1. 加入这家公司一直跟通信层打交道  天天使用byte数组传递数据  好怀念 使用http协议 传数据  至少人家 okttp 或者retrofit帮你封装好了 现在 天天是十进制转换为16进制,byte 数组转换成short,int ,String  上面一篇是各种 转换的方法 

   今天碰到的问题是 一串byte数组 我可能是只需要前十个字节  但是 传过来定义时候可能定义32位长度  但是我只需要十位  

  使用  new String (byte[32],"UTF-8") 产生的String  字符串 在setText时候并没有什么问题  但是需要这个字符串去匹配时候 只能说抱歉了 人家真正打印是这种形式

  XX讲�  

 后面的00  会变成这种类似乱码的问号  但是展示时候没什么问题 

 不多说了上代码吧   检测到00 不用就行了

public static String ByteToString(byte[] bytes)
{

    StringBuilder strBuilder = new StringBuilder();
    for (int i = 0; i <bytes.length ; i++) {
        if (bytes[i]!=0){
            strBuilder.append((char)bytes[i]);
        }else {
            break;
        }

    }
    return strBuilder.toString();
}
这样子不会产生  类似乱码的问题 亲测没问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值