1

XML 流中的一些特殊字符可能会破坏它。我需要清理我想在这样的流中插入的数据,以便 1)它不会损坏 2)其中的可打印 UTF-8 字符继续工作。

我还需要在生成输出后立即将其刷新,否则我将不得不在 ram 中保留很多东西。

截至目前,我做类似的事情

$return = preg_replace('/[^\p{L}\s]/u', '', $return);

它删除了大部分不可打印的字符,但不是全部。我很难弄清楚是什么字符导致了这个问题,但是当我遇到其中一个字符时,终端会返回“1;2c”。

你有没有更好的方法来去除所有这些丑陋的角色?

4

1 回答 1

2

不确定您是否走在正确的道路上...

1.) 为什么要以基于文本的格式传输不可打印(二进制?)数据?

2.) 检查 CDATA 是否有帮助

<node><![CDATA[ugly characters]]></node>

3.) 使用 base64 将二进制数据转换为可打印字符

<node><?php echo base64_encode($uglyCharacters); ?></node>
于 2012-05-06T14:35:19.493 回答