使用 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>
永久解决方案
最好的方法是从源头纠正编码。将问题传达给数据提供者并请求他们使用正确的 UTF-8 对 XML 内容进行编码。
以上是如何使用 PHP SimpleXML 解决'输入不是正确的 UTF-8,请指示编码!”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!