我正在使用以下PHP库生成XML:
$dom = new DOMDocument("1.0","utf-8");
执行上述操作会生成一个页面,该页面顶部显示一条消息。
此页面包含以下错误: 第16行第274505列出现错误:PCDATA无效的字符值27 下面是页面在第一次出错之前的呈现。
我尝试使用Tidy库进行修复...使用iconv将中文字符转换为UTF-8。
我正在使用以下PHP库生成XML:
$dom = new DOMDocument("1.0","utf-8");
执行上述操作会生成一个页面,该页面顶部显示一条消息。
此页面包含以下错误: 第16行第274505列出现错误:PCDATA无效的字符值27 下面是页面在第一次出错之前的呈现。
我尝试使用Tidy库进行修复...使用iconv将中文字符转换为UTF-8。
function utf8_for_xml($string)
{
return preg_replace ('/[^\x{0009}\x{000a}\x{000d}\x{0020}-\x{D7FF}\x{E000}-\x{FFFD}]+/u', ' ', $string);
}
希望这能为其他人节省一些时间。
sring.gsub(/[^\u{0009}\u{000a}\u{000d}\u{0020}-\u{D7FF}\u{E000}-\u{FFFD}]+/u, ' ')
... 或者更高效地,这也可以用以下方式实现:string.tr("^\u{0009}\u{000a}\u{000d}\u{0020}-\u{D7FF}\u{E000}-\u{FFFD}", ' ')
。 - Tom LordPrashant说得完全正确。你也可以通过以下方式在Javascript中去除无效字符:
function utf8_for_xml(inputStr) {
return inputStr.replace(/[^\x09\x0A\x0D\x20-\xFF\x85\xA0-\uD7FF\uE000-\uFDCF\uFDE0-\uFFFD]/gm, '');
}