我正在寻找一种从 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等。
谢谢!
评论中的答案:
尝试删除/转义此文本中的与号或将其包装在 CDATA 中 块
所以我把调用函数
放在前面 simplexml_load_string($string)
这
$string = str_replace('&', ' ', $string);
.
现在它是工作,没有 & in 字符串,所以 simplexml_load_string() 可以解析而不会出错。