关于html_entity_decode、空格 以及乱码
2016-05-05 00:00
260 查看
普通ASCII码空格为32,但是浏览器会对普通空格进行自动归并,
也就是如果你输入10个0x20的空格在HTML页面里面,可能会被合并成一个空格。
如果想要一致的呈现多个空格,就要用到 ,这个空格的编码为160,为西欧ISO-8859-1编码标准。
为了让经过HTML编码的内容还原为原来的文本字符,可以使用html_entity_decode方法,
但这样问题就来了,通常HTML编码内容为UTF8格式的,html_entity_decode在浏览器UTF8编码环境下会把
 转为一个黑色四方形状的乱码。只有切换为ISO-8859-1才能正确显示为空格。
所以在使用html_entity_decode之前,需要先把 替换掉(str_replace),这样就可以避免乱码问题。
示例:
对下面这段字符串直接进行HTML解码后,会出现乱码的问题:
结果:
先将空格 替换掉,然后再应用html_entity_decode解码后,就不会出现问题了。
还有一种简单的方法,htmlspecialchars_decode( )不用转换空格就可以转化并且不出现乱码:
也就是如果你输入10个0x20的空格在HTML页面里面,可能会被合并成一个空格。
如果想要一致的呈现多个空格,就要用到 ,这个空格的编码为160,为西欧ISO-8859-1编码标准。
为了让经过HTML编码的内容还原为原来的文本字符,可以使用html_entity_decode方法,
但这样问题就来了,通常HTML编码内容为UTF8格式的,html_entity_decode在浏览器UTF8编码环境下会把
 转为一个黑色四方形状的乱码。只有切换为ISO-8859-1才能正确显示为空格。
所以在使用html_entity_decode之前,需要先把 替换掉(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);
相关文章推荐
- Orace查询数据出现乱码的问题解决思路
- oracle em 按钮乱码解决办法及em网页变成英文
- C#读取中文文件出现乱码的解决方法
- mysql命令提示行连接乱码的解决
- 解决Java程序使用MySQL时返回参数为乱码的示例教程
- Jquery乱码的一次解决过程 图解教程
- 解决realplayer11中文正式版网页右键乱码问题embed_cn.dll
- 计算机中的字符串编码、乱码、BOM等问题详解
- PHP附件下载中文名称乱码的解决方法
- PHP使用PDO操作数据库的乱码问题解决方法
- php+AJAX传送中文会导致乱码的问题的解决方法
- Discuz!nt 源文件变成乱码的解决方法
- jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
- JavaScript中出现乱码的处理心得
- Js,alert出现乱码问题的解决方法
- 深入Lumisoft.NET组件开发碰到乱码等问题的解决方法
- jquery中文乱码的多种解决方法
- Jquery网页出现的乱码问题的三种解决方法
- oracle安装出现乱码等相关问题
- GET方法URL中传递中文参数乱码的解决方法