我需要清理一个字符串,该字符串从各种微软Office套件应用程序(Excel、Access、和Word)中复制/粘贴,每个应用程序都有自己的编码集。
为了能够查看每个单独编码的字符,我使用json_encode进行调试。
我已经能够使用str_replace清除我发现的所有内容(\r \n),但是对于\u00a0,我没有成功。
$string = 'mail@mail.com\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;mail@mail.com'; //this is the output from json_encode
$clean = str_replace("\u00a0", "",$string);
返回:
mail@mail.com\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;mail@mail.com
这完全相同;它完全忽略了\u00a0。
有没有办法解决这个问题?此外,我感觉我正在重新发明轮子,有没有一个函数/类可以完全剥离每种可能的编码的每个字符?
____编辑____
在收到前两个回复后,我需要澄清一下,我的示例是有效的,因为它是json_encode的输出,而不是实际字符串!