问 题
我使用PHP库生成XML如下:
$ dom = new DOMDocument(“1.0”,“utf- 8“);
执行以上操作会在输出的顶部显示一条消息。
此页面包含以下错误:
错误在第16行在列274505:PCDATA无效的字符值27
下面是一个页面的渲染,第一个错误。**
我已经尝试使用Tidy库纠正。使用iconv获取UTF-8中的中文字符。
解决方案
在本网站建议一个有用的功能来摆脱这个错误。
http://www.phpwact.org/php/i18n/charsets#common_problem_areas_with_utf8
当你将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);
}
希望节省别人一些时间..
网友评论