前阵子用simplexml来解析一个rss数据源,很轻松就获得了想要的结果.不想没几天就开始报错:

Warning: simplexml_load_file() [function.simplexml-load-file]: input conversion failed due to input error, bytes 0xAD 0xB5 0x3C 0x2F

  刚开始猜想是php5的一个bug,但是搜索发现,有可能是rss源内混杂了其它编码的字符,导致simplexml解析错误.

  也就是说,如果rss的声明是这样子:

PLAIN TEXTXML: <?xml version="1.0" encoding="GB2312"?>

那么rss内容一定要是gb2312.

解决办法

用iconv转换编码

修改encoding为正确的编码