HTML字符实体(Character Entities) HTML特殊字符显示,搭建的bc文件夹显示特殊html字符
有些字符在HTML里有特别的含义,比如小于号Tag的开始,这个小于号是不显示在我们最终看到的网页里的。那如果我们希望在网页中显示一个小于号,该怎么办呢?
这就要说到HTML字符实体(HTML Character Entities)了。
一个字符实体(CharacterEntity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。
比如,要显示小于号,就可以写用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是lessthan的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。
注意:Entity是区分大小写的。这些字符属于unicode字符集,所以,你的文档需要声明为UTF-8;
下面符号列表的后面有两列编号,它们并不太一样,第一列是用于HTML的,你需要在前面加上符号;
第二列可以用于CSS文件中,但是需要用反斜杠\转义;
第二列也可以用于JavaScript,和CSS用法一样,不过要用\u来转义。
如何显示空格
通常情况下,HTML会自动截去多余的空格。不管你加多少空格,都被看做一个空格。比如你在两个字之间加了10个空格,HTML会截去9个空格,只保留一个。为了在网页中增加空格,你可以使用表示空格。
最常用的字符实体(Character Entities)
显示结果 说明 Entity Name Entity Number
富文本转html字符串
字符串转富文本
最近项目遇到的问题,因为后台返回的数据是HTML字符串,所以就按照常规处理方式把HTML字符串转换成富文本的字符串来处理,事实证明,tableview会非常卡,并且造成线程阻塞,无法响应事件
解决方案1.首先我想到的是把耗时操作放在子线程来操作
解决方案2. 因为是cell展示,所以只需要展示文本信息就行,那就过滤掉HTML标签,瞬间解决所有问题。所以在列表展示数据的时候HTML转换NSAttributedString一定要慎用
下面简单介绍一下NSScanner
NSScanner是一个类,用于在字符串中扫描指定的字符,翻译成我们需要的字符串或者数字,核心就是位置的移动 即scanLocation的移动变化
在上面的方法中首先指明了要扫描的对象 html(NSString) NSString * text 很重要 把我们要扫描出来的字符串存到text里面
而这个扫描到的字符串就是>之前的字符串 scanUpToString这个方法的意思是将scanLocation停留在>之前 并把之前的字符串传给text。
回头来看看我们去除html标签的方法 整个过程都是在扫描过程中进行的NSScanner在执行scanUpToString这个方法时一旦扫描到需要的字符串比如例子中的“<”,其scanLocation就会变为html的初始位置。所以,要在执行完一次完整的扫描后 把html标签用空字符串替换掉,在进行下一次扫描,也就是说再while中 html字符串的标签字符会越来越少,而每次扫描的初始位置相对没有变化都停留在上一次扫描结束的位置,即"<"标签的前面。
参考链接----传送门