最近项目需要一个二维码扫描的功能,可是有一个二维码在Android上扫描出现了问题,IOS却是好的,我拿到IOS的返回结果,和我的对比结果如下

安卓 字符串一样 但是长度不一样 equals返回false

看上去相同但是长度却不一样,让我有点怀疑人生;经过一番折腾终于找到了原因,是返回数据里面有特殊字符,一般的工具打印不出来。

 

    解决方法:

try {
    content=new String(content.trim().getBytes("iso-8859-1"),"UTF-8");
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

使用getBytes()转码将字符显示出来

安卓 字符串一样 但是长度不一样 equals返回false

最终特殊字符被转成问号(?),我们只要将问号替换成空格即可  

content=content.replace("?","");

最终代码

安卓 字符串一样 但是长度不一样 equals返回false

总结:

发现看上去一样的字符串,但是用equals比较却不相同时,打印一下他们的长度,如果长度不一样就说明有特殊字符。

 

 

 

 

 

相关文章: