前陣子用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為正確的編碼