我使用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
当您在XML文档中放入utf-8编码字符串时,应该记住并非所有utf-8有效字符都能在XML文档内被接受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);
}
希望这能为其他人节省一些时间。。
function utf8_for_xml(inputStr) {
return inputStr.replace(/[^'x09'x0A'x0D'x20-'xFF'x85'xA0-'uD7FF'uE000-'uFDCF'uFDE0-'uFFFD]/gm, '');
}