webview 加载部分url加载不出来的解决方案

使用webview 加载一个url来展示一个页面,测试过程中发现一个问题,就是webview加载URL的时候有的url打不开

刚开始的时候以为是webview的问题,我项目中使用腾讯的Tbs的webview,经过各种设置还是没有解决,使用Android原生的进行测试,也是不行

然后就对相应的Url进行比较,然后把打印的url地址直接赋值给新建的变量url,直接 webView.loadUrl(url)这个地址,竟然可以,但是直接使用从接口返回的webUrl,还是不行,然后对两个字符串进行对比,

webUrl 是直接从接口中获取的,url是直接赋值写死的

从中可以看出两个字符串 看着是一样的,实际是不一样的

然后,对url和webUrl 分别调用toCharArray()方法转化为char[],进行对比

通过对比发现问题了,原来url中多了一个 uFEFF 的Unicdoe ,通过这个网页对这个Unicdoe 码进行查询

这是一个特殊空白字符,这个字符没有宽度,但它确实存在

这个特殊字符称为BOM(Byte order mark),是Unicode(编码方案包括UTF-8,UTF-16,UTF-32等)的字节顺序标记,它有三个作用:

    说明字节序:big-endian和little-endian两种,UTF-16和UTF-32都有这两种字节序(utf-16be,utf-16le,utf-32be,utf-32le)。 说明字符流属于Unicode编码 说明字符流是哪一种Unicode编码方式

使用trim()这个方法是不行的,可以使用 webUrl.replaceAll("uFEFF","") 这个方法来去掉这个特殊空白字符

若是存在部分url不显示的问题,或许就是我所遇到这个问题,可以尝试webUrl.replaceAll("uFEFF","")这个方法来试一下



经验分享 程序员 微信小程序 职场和发展