+ -
当前位置:首页 → 问答吧 → XML 出现乱码浏览器解析出错怎么处理

XML 出现乱码浏览器解析出错怎么处理

时间:2011-10-21

来源:互联网

- <description>
- <![CDATA[ AT&amp;amp;T在今天宣布自己的网络已经激活了100万部iPhone 4S的同时,AT&amp;amp;T还公布了2011年第三季度的财政收入报告。就像苹果公布的结果一样,AT&amp;amp;T在今年第三季度的iPhone激...
  ]]> 
  </description>


文本里面出现这种乱码咋办,XML解析出错,请问怎么过滤掉这种非法字符



作者: sindel   发布时间: 2011-10-21

文件的编码格式?

作者: ohmygirl   发布时间: 2011-10-21

AT&amp;amp

这个就是乱码,我想了很多办法过滤掉它结果还是不行..

  $description = $v['introtext'];
  $description = strip_tags($description);
  $description = str_replace('&nbsp;', '', $description);
  $description = htmlspecialchars($description);
  $description = iconv("UTF-8", "UTF-8//IGNORE", $description); //为了避免出现乱码

上面是我随便试的过滤办法

作者: sindel   发布时间: 2011-10-21

引用 2 楼 sindel 的回复:

AT&amp;amp;amp

这个就是乱码,我想了很多办法过滤掉它结果还是不行..

$description = $v['introtext'];
$description = strip_tags($description);
$description = str_replace('&amp;nbsp;', '', $description……


乱码是由于字符被不正确解码造成的,不是过滤不过滤的问题。需要正确解码。。
怎么能通过过滤的方法过滤掉呢?

作者: ohmygirl   发布时间: 2011-10-21

是编辑们直接从WORD里面复制文章进去提交生成的,不是解码的问题

作者: sindel   发布时间: 2011-10-21

PHP code

$str = <<<str
AT&amp;amp;T在今天宣布自己的网络已经激活了100万部iPhone 4S的同时,AT&amp;amp;T还公布了2011年第三季度的财政收入报告。就像苹果公布的结果一样,AT&amp;amp;T在今年第三季度的iPhone激...
str;
$str = htmlspecialchars_decode($str);
echo preg_replace('/[^\x{4e00}-\x{9fa5}\d\w,。\.& ]/u', '', $str);//中文字符自己根据源内容符号添加.

作者: ZT_King   发布时间: 2011-10-21

应该说是标点符号需自己添加,目前我能想到的处理方法.

作者: ZT_King   发布时间: 2011-10-21

找到一个更好的正则模式.
PHP code
echo preg_replace('/[^ -~一-龥]/u', '', $str);

原贴

作者: ZT_King   发布时间: 2011-10-21

怎么是乱码呢?
AT&amp;amp;T 就是 AT&T

AT&T公司是美国最大的固网电话服务供应商及第二大的移动电话服务供应商,此外还提供宽带及收费电视服务。合共1.5亿户提供服务,当中8510万户为无线用户

作者: xuzuning   发布时间: 2011-10-21


PHP code

$str = <<<str
AT&amp;amp;T在今天宣布自己~!@#¥%……&*()——+、?。,的网络已经激活了100万部iPhone 4S的同时,AT&amp;amp;T还公布了2011年第三季度的财政收入报告。就像苹果公布的结果一样,AT&amp;amp;T在今年第三季度的iPhone激...
str;
echo $str.'<br/>';
$str = htmlspecialchars_decode($str);
echo preg_replace('/[^ -~一-龥\x{2000}-\x{202f}\x{3001}-\x{300f},!]/u', '', $str);
echo '<br/>';
echo preg_replace('/[^[:punct:] \d\w\x{4e00}-\x{9fa5}\x{2000}-\x{202f}\x{3001}-\x{300f},!]/u', '', $str);//跟上面那个正则一样

作者: ZT_King   发布时间: 2011-10-21

$s = 'AT&amp;amp;T';
$s = html_entity_decode ($s);
echo $s = html_entity_decode ($s); //AT&T

作者: xuzuning   发布时间: 2011-10-21

莫 急

作者: liuahuilele   发布时间: 2011-10-21

谢谢各位, 暂时 编辑下文章把乱码去掉了,上面的方法有空我再测试一下
以前也出现过乱码 
iconv("UTF-8", "UTF-8//IGNORE", $description); 我用这个方法自动 去掉了

但是像今天出现的 又去不掉

是出现在 
AT&amp;amp;T在今年第三季度的iPhone激...

这句话里面

作者: sindel   发布时间: 2011-10-21

热门下载

更多