使用SimpleXML 處理編碼錯誤
「輸入不是正確的UTF-8,請指示編碼!」使用PHP 的simplexml_load_string 函數處理XML_string數據時出現錯誤。這表示 XML 內容未正確編碼為 UTF-8。
偵測不正確的編碼
此錯誤的根本原因可能是 XML 之間的編碼不符內容和 PHP 環境。要確定正確的編碼:
預處理XML
要解決此問題,請考慮以下方法:
使用回調進行部分修復
作為臨時措施,您可以使用以下函數來修復一些損壞的UTF-8 序列:
<code class="php">function fix_latin1_mangled_with_utf8_maybe_hopefully_most_of_the_time($str) { return preg_replace_callback('#[\xA1-\xFF](?![\x80-\xBF]{2,})#', 'utf8_encode_callback', $str); } function utf8_encode_callback($m) { return utf8_encode($m[0]); }</code>
永久解決方案
最好的方法是從源頭修正編碼。將問題傳達給資料提供者並請求他們使用正確的 UTF-8 對 XML 內容進行編碼。
以上是如何使用 PHP SimpleXML 解決「輸入不是正確的 UTF-8,請指示編碼!」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!