xml 解析錯誤

PHP xml 解析錯誤

錯誤內(nèi)容:

  • simplexml_load_string(): input conversion failed due to input error

錯誤示例:

  • xml 文件編碼為utf-8, 但 encoding中的編碼為 GB2312 (我自己就干了這樣的蠢事)

需要注意的點:

  • php simplexml_load_string() 解析過程中會有二個字符編碼,需要保持一致
    • xml 文件本身的字符編碼
    • xml encoding中的編碼

code:

  • 有時編碼一致之后,還會出現(xiàn)這種解析錯誤, 需要自己轉(zhuǎn)碼
$responseXml  = file_get_contents("文件路徑");
// 替換空格
 $replStr     = str_replace(' ', '', "encoding=\"GB2312\"");
 $responseXml = str_replace($replStr, "encoding=\"UTF-8\"", $responseXml);
// iconv 函數(shù)會有部分編碼轉(zhuǎn)換錯誤,mb_convert_encoding函數(shù)就沒有
 $responseXml = mb_convert_encoding($responseXml, 'UTF-8', 'GB2312, GBK');
$simple = simplexml_load_string($responseXml);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容