【发布时间】:2015-03-22 12:06:24
【问题描述】:
我正在寻找一种从 xml 文件中删除/跳过非 utf8 字符的方法。
我正在使用 simplexml_load_string(),但是当文件包含非 utf8 字符时,我收到错误“解析器错误:CharRef:无效的十六进制值”,代码如下所示:
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 等。
谢谢 !
【问题讨论】:
-
问题不在于看起来怪异的字符(它们本身是有效的),而在于像
&#xAEP这样的损坏的实体。尝试删除/转义此文本中的 & 符号或将其包装在CDATA块中。 -
@georg 是的,你说得对,$string = str_replace('&', ' ', $string);我的代码正在运行。
标签: php xml xml-parsing