繁体   English   中英

DOMDocument :: loadXML():输入的UTF-8不正确,表示编码

[英]DOMDocument::loadXML(): Input is not proper UTF-8, indicate encoding

我从格式化为utf-8的数据库生成XML文件并创建XML文件,但是在某些特定情况下,它无法正确转换并显示以下消息:

DOMDocument :: loadXML():输入的UTF-8不正确,请指定编码! 实体中的位元组:0x96 0x20 0x50 0x61字节:1

我已经尝试了所有可能的在线解决方案,例如iconv,尝试做正则表达式,但是这些都不能解决问题。 mb_encoding返回的是ASCII,据说是UTF-8,甚至检查文件本身的utf-8。

这是我的文件开始,它从数据库加载变量$ xml_file的文件路径,所有数据库的输入都使用utf8_decode进行解码。

<?php
$content = utf8_encode(file_get_contents($xml_file));
//$encoding = mb_detect_encoding($content);
//$myXMLString = file_put_contents($xml_file, iconv('WINDOWS-1251', 'UTF-8', file_get_contents($xml_file)));
$xml_doc = new DomDocument();
$xml_doc->formatOutput = true;
$xml_doc->preserveWhiteSpace = false;
$xml_doc->loadXML($content);
?>

这仅在某些项目中发生,因为其他项目正确生成,但是我找不到它们之间的任何特殊区别,也无法对此进行永久修复。

我如何解决:

$ content = iconv('UTF-8','UTF-8 // IGNORE',$ content);

设法解决此问题,再次将其转换为UTF-8:

$content = iconv('UTF-8', 'UTF-8//IGNORE', $content);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM