最近项目需要一个二维码扫描的功能,可是有一个二维码在Android上扫描出现了问题,IOS却是好的,我拿到IOS的返回结果,和我的对比结果如下
看上去相同但是长度却不一样,让我有点怀疑人生;经过一番折腾终于找到了原因,是返回数据里面有特殊字符,一般的工具打印不出来。
解决方法:
try { content=new String(content.trim().getBytes("iso-8859-1"),"UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }
使用getBytes()转码将字符显示出来
最终特殊字符被转成问号(?),我们只要将问号替换成空格即可
content=content.replace("?","");
最终代码
总结:
发现看上去一样的字符串,但是用equals比较却不相同时,打印一下他们的长度,如果长度不一样就说明有特殊字符。