文档章节

关于html_entity_decode、空格 以及乱码

Corwien
 Corwien
发布于 2016/05/05 14:44
字数 428
阅读 790
收藏 0

普通ASCII码空格为32,但是浏览器会对普通空格进行自动归并,

也就是如果你输入10个0x20的空格在HTML页面里面,可能会被合并成一个空格。

如果想要一致的呈现多个空格,就要用到&nbsp,这个空格的编码为160,为西欧ISO-8859-1编码标准。


为了让经过HTML编码的内容还原为原来的文本字符,可以使用html_entity_decode方法,

但这样问题就来了,通常HTML编码内容为UTF8格式的,html_entity_decode在浏览器UTF8编码环境下会把

&nbsp转为一个黑色四方形状的乱码。只有切换为ISO-8859-1才能正确显示为空格。


所以在使用html_entity_decode之前,需要先把&nbsp替换掉(str_replace),这样就可以避免乱码问题。

示例:

 对下面这段字符串直接进行HTML解码后,会出现乱码的问题:

     
$str = '真爱粉们,当时活动的一些精选片段吧~ </font></div><div><';
$content = html_entity_decode($str);
print_r($content );


结果:

先将空格 替换掉,然后再应用html_entity_decode解码后,就不会出现问题了。

                  
$str = '真爱粉们,当时活动的一些精选片段吧~ </font></div><div><';
 
 // 替换空隔符
 $content = str_replace(" ","[space_code]",$str);
 $content = html_entity_decode( $content );
 
 // 转换之后,再将空格符替换回来
  $content = str_replace("[space_code]"," ",$content);
  
  print_r($content );


还有一种简单的方法,htmlspecialchars_decode( )不用转换空格就可以转化并且不出现乱码:

     
$str = '真爱粉们,当时活动的一些精选片段吧~ </font></div><div><';    
$content = htmlspecialchars_decode($str);


© 著作权归作者所有

Corwien
粉丝 27
博文 149
码字总数 115164
作品 0
广州
程序员
私信 提问
php html_entity_decode HTML实体转义

最近遇到一个问题,数据中包含中文引号,结果被转义存储到数据库,取数据的时候用了htmlspecialcharsdecode把实体转义回去,结果发现并没有生效,看了一下htmlspecialcharsdecode只支持5个指...

努力的C
2018/06/29
0
0
htmlentities和htmlspecialchars 的区别

多人都以为htmlentities跟htmlspecialchars的功能是一样的,都是格式化html代码的,我以前也曾这么认为,但是今天我发现并不是这样的。 代码如下: '&' (ampersand) becomes '&' '"' (double......

BearCatYN
2015/03/26
35
0
php htmlentities和htmlspecialchars 的区别

很多人都以为htmlentities跟htmlspecialchars的功能是一样的,都是格式化html代码的,我以前也曾这么认为,但是今天我发现并不是这样的。 The translations performed are: 代码如下: '&' ...

tianhuahua
2013/10/01
151
0
python2利用urllib2抓取中文网页乱码的问题

话说晚上上完爬虫抓取班会之后群里有童鞋扔出来了一个网址 www.runoob.com/python/python-exercise-example1.html 并且疑问说这个地址用urllib2抓出来的居然是乱码希望大家一起看看。本着上山...

木木成洋
2017/11/11
0
0
python2利用urllib2抓取中文网页乱码的问题

话说晚上上完爬虫抓取班会之后群里有童鞋扔出来了一个网址 www.runoob.com/python/python-exercise-example1.html 并且疑问说这个地址用urllib2抓出来的居然是乱码希望大家一起看看。本着上山...

木木成洋
2017/11/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基于CentOS7搭建GitLab

基于CentOS7搭建GitLab 12018.11.02 16:38:51字数 959阅读 3791 本文作者:蓝雄威,叩丁狼高级讲师。原创文章,转载请注明出处。 一、简介 Git Lab GitLab是利用 Ruby on Rails 一个开源的版...

linjin200
13分钟前
3
0
random生成随机数

随机生成0到100之间的10个随机数,然后使用冒泡排序将这10个数按从小到大的顺序排序 生成10个随机数 import randomnum = range(0, 100) # 范围在0到100之间,需要用到range()函数。nums...

彩色泡泡糖
17分钟前
2
0
kubernetes 环境搭建 —— kubeadm

主从节点需要安装的服务 Master 节点 Node 节点 etcd-master Control plane(如:calico,fannel) kube-apiserver kube-proxy kube-controller-manager other apps kube-dns Control plane(如:......

lemos
20分钟前
3
0
php将字符串中的中英文数字分割

$str = "php如何将字 符串中322的字母数字Asf f45d和中文_分割?"; $arr = preg_split("/([a-zA-Z0-9]+)/", $str, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); print_r($arr); Arr......

小小小壮
20分钟前
2
0
茑屋书店理解(一)

说到实体书店,你可能会想到两个字“难做”。一是电子书大为盛行,二是纸书作为标准品,完全可以在网上购买,因此国内许多实体书店的日子是举步维艰。但是在日本有这么一家实体书店,目前已经...

Idea
24分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部