如何 skip/remove 来自 xml 文件的无效非 utf8 字符

How to skip/remove invalid non-utf8 characters from a xml file

我正在寻找一种从 xml 文件中 delete/skip 非 utf8 字符的方法。
我正在使用 simplexml_load_string(),但是当文件具有非 utf8 字符时,我收到错误 "parser error : CharRef: invalid hexadecimal value",代码看起来像这样:

Q7fzÕ6,¯å1òw~Ò`H-7%¨§ÃU³^Ôàƒ³‡Îá_s…“w²žrâºæºçYF#K‰àa¥²o8Îk쎻qíNž‚ËÂUeJvgXêõ»'[Hw®Èl[-&#xAEPs§æŠ§£gáRÓ„Å2Ì$ŽŽŠŽÆÁœ˜.E~Ñ°@=

我无法保存来自 xml 的信息,我正在尝试 web/Whosebug 的许多解决方案,但没有人帮助我。
我正在尝试 preg_replace,等等
谢谢 !

来自评论的回答:

Try removing/escaping ampersands in this text or wrap it in a CDATA block

所以我把调用函数放在前面
simplexml_load_string($string)
这个
$string = str_replace('&', ' ', $string);
现在它可以工作了,字符串中没有 & 所以 simplexml_load_string() 可以正确解析。