Php 如何从xml文件中跳过/删除无效的非utf8字符
我正在寻找一种从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[-®Ps§æ
我使用的是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[-®Ps§æŠ§£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);我的代码正在运行。