我需要清理来自各种Microsoft Office套件应用程序(复制/粘贴)的字符串(Excel,Access和Word ),每个都有自己的一组编码。我有一个字符串“ u00a0”,我需要用它替换它“”str_replace failed
我使用json_encode进行调试,以便能够看到每一个编码字符。
我可以使用str_replace清理目前为止发现的所有内容(\ r \ n),但使用\ u00a0我没有运气。
$string = '[email protected]\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;[email protected]'; //this is the output from json_encode
$clean = str_replace("\u00a0", "",$string);
回报:
[email protected]\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;[email protected]
这是完全一样的;它完全忽略了\ u00a0。
有没有办法解决这个问题?另外,我感觉我正在重新发明轮子,是否有一个函数/类可以完全去除每种可能编码的每个可能的字符?
____EDIT____
前两个答复,我需要澄清的是我的例子不工作后,因为它是从json_encode的输出,而不是实际的字符串!
在你的例子中,它的工作原理是因为你使用js的输出on_encode不是实际的字符串!如果我复制粘贴我的代码,即使对我来说也是完美的。 – 0plus1 2010-04-07 13:01:01
如果您替换'\ xa0'而不是'\ u00a0',会发生什么? – 2010-04-07 13:23:13
发生这种情况。它确实删除了\ u00a0的实例,当从json_encode打印时它看起来没问题,但是如果我在没有json编码的情况下回显字符串,我会得到一个 ,之前有\ u00a0。在这一点上,我不明白发生了什么事。请给我一个解释! :-) – 0plus1 2010-04-07 14:48:39