ホームページ >バックエンド開発 >PHPチュートリアル >PHP SimpleXML を使用した「入力は適切な UTF-8 ではありません。エンコーディングが示されています !」エラーを解決する方法?
SimpleXML でのエンコーディング エラーの処理
「入力は適切な UTF-8 ではありません。エンコーディングを示してください!」 PHP の simplexml_load_string 関数を使用して XML データを処理すると、エラーが発生します。これは、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>
恒久的な解決策
最善の方法は、ソースのエンコーディングを修正することです。データプロバイダーに問題を伝え、XML コンテンツを適切な UTF-8 でエンコードするようリクエストしてください。
以上がPHP SimpleXML を使用した「入力は適切な UTF-8 ではありません。エンコーディングが示されています !」エラーを解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。