【问题标题】:How to get rid of "'', hexadecimal value 0x11, is an invalid character. Line 1" in XML error, when binary chracters are put in XML?如何摆脱“'',十六进制值 0x11,是一个无效字符。当二进制字符放入 XML 时,XML 错误中的第 1 行”?
【发布时间】:2011-11-28 11:04:27
【问题描述】:

当有人将二进制字符 '' 放入文本字​​段时,我收到 XML 解析错误。 有什么方法可以将这些数据编码为 XML 并在有人使用时将其解码回来。

我的 Webs 服务是使用 PHP 编写的

我应该在 PHP 中使用 utf8_encode/decode 方法吗?

我尝试了 bin2hex(编码)和 hexdec(解码),但它不适用于所有字符,例如来自其他语言的字符集。

【问题讨论】:

  • "我应该在 PHP 中使用 utf8_encode/decode 方法吗?"如果你想让其他语言的字符工作,是的。然后,还使用 ​​utf-8 字符编码为您的页面提供服务。

标签: php character-encoding xml-parsing


【解决方案1】:

如果 XML 源格式错误,并且您的 PHP 安装了 tidy 模块(--with-tidy),
试试这个:-

    /* src xml could be malform */
    $ops = array();
    $ops['input-xml']  =
    $ops['output-xml'] = TRUE;

    $tidy = new Tidy($source_file, $ops);
    $tidy->isXML();
    $tidy->cleanRepair();

这当然会尝试清理和修复 XML 中的任何畸形,
这意味着在 cleanRepair 之后,两个 XML 不再相同。

【讨论】:

    猜你喜欢
    • 2012-09-10
    • 2016-01-07
    • 2011-10-07
    • 2015-06-23
    • 2012-11-24
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多