我使用如下PHP库生成XML:
$dom = new DOMDocument("1.0","utf-8");
上述操作的方式产生一个网页,其中示出了在输出的顶部的消息。
此页面包含以下错误:在274505列第16行错误:PCDATA无效字符值27以下是向上翻页的渲染的第一个错误。
我曾尝试用整洁库整顿..使用的iconv得到的UTF-8字符中国。
我使用如下PHP库生成XML:
$dom = new DOMDocument("1.0","utf-8");
上述操作的方式产生一个网页,其中示出了在输出的顶部的消息。
此页面包含以下错误:在274505列第16行错误:PCDATA无效字符值27以下是向上翻页的渲染的第一个错误。
我曾尝试用整洁库整顿..使用的iconv得到的UTF-8字符中国。
一个有用的功能,摆脱错误的建议这个网站上。 http://www.phpwact.org/php/i18n/charsets#common_problem_areas_with_utf-8
当你把UTF-8编码字符串一个XML文档中你应该记住,不是所有的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);
}
希望节省了别人一些时间..
PRASHANT是绝对正确的。 您也可以剥去在Javascript无效字符做:
function utf8_for_xml(inputStr) {
return inputStr.replace(/[^\x09\x0A\x0D\x20-\xFF\x85\xA0-\uD7FF\uE000-\uFDCF\uFDE0-\uFFFD]/gm, '');
}