前阵子用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为正确的编码