我需要清理来自各种 Microsoft 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 的输出,而不是实际的字符串!