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文本啦