我正在使用PHP库生成XML,如下所示:
$dom = new DOMDocument("1.0","utf-8");
进行上述操作会导致页面显示在输出顶部。
该页面包含以下错误:第16行的第274505列错误:PCDATA无效的Char值27下面是直到第一个错误的页面呈现。
我尝试使用Tidy库进行纠正。使用iconv在UTF-8中获取中文字符。
该网站建议使用一种有用的功能来消除该错误。 http://www.phpwact.org/php/i18n/charsets#common_problem_areas_with_utf-8
当您将utf-8编码的字符串放入XML文档时,您应该记住,XML文档中并非所有utf-8的有效字符都被接受http://www.w3.org/TR/REC- xml/#charsets
因此,您应该删除不需要的字符,否则将出现XML致命的解析错误,例如上述
function utf8_for_xml($string) { return preg_replace ('/[^\x{0009}\x{000a}\x{000d}\x{0020}-\x{D7FF}\x{E000}-\x{FFFD}]+/u', ' ', $string); }
希望可以节省一些时间。