您的位置:首页 > 移动开发

使用Webview显示html文本遇到的字符实体问题

2017-08-04 16:21 302 查看

Html字符实体

在Html中的<>是不作为我们平常的大于,小于号而是已经固定为html的标签,所以这些符号是不显示在我们最终看到的网页中的,如果希望显示在网页中就要用到html字符实体(转义字符)

常用的如下:



Html字符实体与Webview

在开发的过程中遇到一个奇怪的问题,一开始与后天交互使用的是Webservice,获取到的html文本内容是正常的带标签的html文本,而改成Retrofit访问后台获取的html文本内容显示的是转义的html文本

<p>123<p>//这是使用Webservice获取的html文本内容
<p>123<p>//这是使用Retrofit获取的html文本内容
webview.loaddatewithBaseurl(html)


所以用webview显示html文本内容之后,第一种是可以解析标签正常显示,第二种是带标签显示的。

所以可以看出后台返回的是经过转义的html文本,所以android前端就要还原

html转义用java还原方法

1.Spring的HtmlUtils类进行还原

org.springframework.web.util.HtmlUtils.htmlUnescape(str);


相对于的转义也介绍一下(前端一般用不到)

org.springframework.web.util.HtmlUtils.htmlEscape(str);


2.apache.common报下的还原方法

compile 'org.apache.commons:commons-lang3:3.6'


org.apache.commons.lang.StringEscapeUtils.unescapeHtml(str);


转义

(org.apache.commons.lang.StringEscapeUtils.escapeHtml(str);


进行还原之后webview就可以正常显示html文本啦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: