【发布时间】:2012-04-10 20:09:26
【问题描述】:
我尝试生成一个大约 23 到 30 MB 的 XML 文档,当我用 Firefox 打开它时,我收到了
XML Parsing Error: not well-formed
Location: file:///Users/User/Downloads/export(2).xml
Line Number 137725, Column 1343:
之后,我尝试使用XML Nanny 验证文档并收到以下错误:
Invalid Character (Unicode: 0xB)
在几 (13) 行:137725、137738、137751、137764、137777、137790、137803、137816、146834、189949、193444、193457、193470
我尝试了几种“解决方案”,其中包括:
-
正则表达式:
preg_replace( '/[^\x9\xA\xD\x20-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}]+/' , ' ', $data->Description);这里的问题是我不太确定这是有效的正则表达式,因为我收到内部服务器错误,因为我们的 apache 中启用了 mod 安全性。
我尝试使用 BOM 将我的文件保存为 UTF-8,但这是绝望的尝试
我尝试将 iconv 与 'UTF-8//IGNORE' 一起使用,但这没有帮助
我尝试使用逐个字符替换,但这不适用于我的文件,因为我有 230k 行.. 即使我替换了我遇到问题的特定标签在 php 中触发 max_execution_time 指令,我的脚本被杀死。
目前我的解决方案是手动清除此无效字符的数据库记录,但这现在是解决我的问题的正确和正确的解决方案,因为将来此脚本将用于自动执行此导出并且手动编辑不是选项或演讲主题。
【问题讨论】: