Php 如何从xml文件中跳过/删除无效的非utf8字符

Php 如何从xml文件中跳过/删除无效的非utf8字符,php,xml,xml-parsing,Php,Xml,Xml Parsing,我正在寻找一种从xml文件中删除/跳过非utf8字符的方法。 我使用的是simplexml\u load\u 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§æ

我正在寻找一种从xml文件中删除/跳过非utf8字符的方法。
我使用的是simplexml\u load\u 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/stackoverflow解决方案,但没有人帮助我
我试着用preg_replace等工具 谢谢

从评论中回答:

尝试删除/转义此文本中的符号或将其包装在CDATA中 挡块

所以我把调用函数放在前面
simplexml\u load\u string($string)

这个
$string=str_replace('&','$string)

现在它可以工作了,没有&in字符串,因此simplexml_load_string()可以无错误地解析。

问题不在于外观怪异的字符(其本身是有效的),而在于像
®P
这样的损坏的实体。尝试删除/转义此文本中的符号AND或将其包装在
CDATA
块中。@georg Yep,您有权使用,$string=str\u replace('&','$string);我的代码正在运行。