我需要清理来自各种Microsoft Office套件应用程序(Excel,Access和Word)的字符串(复制/粘贴),每个字符串都有其自己的编码集。
我正在使用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。
有没有解决的办法?另外,我感觉到我正在重新发明轮子,是否有一个函数/类完全剥离了每种可能编码的所有可能字符?
____编辑____
在前两次回复之后,我需要澄清一下我的示例确实可行,因为它是json_encode的输出,而不是实际的字符串!
最佳答案
当我复制/粘贴您的代码时,对我有用。尝试用单引号替换str_replace()
中的双引号,或转义反斜杠("\\u00a0"
)。