PHP 將utf-8編碼的xml字符串轉換爲數組對象

調用中間件接口的返回值是一個xml字符串,其中 charset="GB2312" ,但奇怪的是我使用下面這個函數來判斷這個xml字符串,得到的結果卻是 UTF-8。

mb_detect_encoding()

由於 xml 中 charset 的值爲 GB2312,所以導致了

simplexml_load_string() 

無法成功解析這個xml字符串


其實解決這個錯誤非常簡單,使用 str_replace 函數將xml字符串中的編碼格式替換爲 UTF-8 後再使用json編碼解碼後就可以得到乾淨的數組元素。

$xml= str_replace('GB2312','UTF-8',$xml);
$xml= simplexml_load_string($xml);
$xml= json_encode($xml);//將對象轉換個JSON
$xml=json_decode($xml,JSON_UNESCAPED_UNICODE);//將json轉換成數組

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章