2015-12-24 27 views
2

我的站點與遠程API通信以同步數據庫。我收到的數據是XML格式,1000次是999,這是我可以直接使用simplexml_load_string解析的正確XML。解析xml:錯誤的字符集編碼

然而,在1000次中,有1次出現錯誤編碼的XML,如下圖所示。

我必須以某種方式解析這個亂碼,因爲試圖獲取相同的記錄將再次給出相同的結果。

如果您有關於如何轉換的建議,請讓我知道。我曾嘗試以下功能,但因此只是在黑暗中拍攝,我不是一個解碼專家:

  • gzdeflate($result)
  • utf8_decode($result)
  • iconv("UTF-8", "UTF-8//IGNORE", $result)
  • base64_decode($result)
  • iconv(mb_detect_encoding($result, mb_detect_order(), true), "UTF-8", $result)

    wrong encoding

+1

執行由API收到響應的HTTP頭給任何線索?如果您不確定如何查看這些內容,請提供您的API調用的更多詳細信息:是GET還是POST還是???;是需要密碼/密碼等 – BareNakedCoder

+0

感謝您提醒我有關標題,因爲這解決了我的問題!看到我更新的問題 – Hacktisch

+0

仍然,這是一個神祕的原因,他們發送這個響應主體... – Hacktisch

回答

1

BareNakedCoder建議查看響應標題並且答案在那裏:顯然,此api的身份驗證令牌過期非常快,即使在執行腳本期間也是如此。請參閱附件圖片瞭解標題。所以解決方案是在每次發生這種情況時重新進行身份驗證。

可惜api不只是在普通的XML輸出中說這個。

這發生在Exact Online(會計軟件)的api中,所以我會將其作爲關鍵字添加到原始問題中。

headers