Мне нужно очистить строку, которая приходит (копируется / вставляется) из различных приложений пакета Microsoft Office ( Excel , Доступ и Word ), каждое со своим собственным набором кодировки.
Я использую json_encode для целей отладки, чтобы можно было увидеть каждый закодированный символ.
Я могу очистить все, что нашел (\ r \ n), с помощью str_replace, но с \ 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.
Есть ли способ обойти это? Кроме того, я чувствую, что заново изобретаю колесо, есть ли функция / класс, который полностью удаляет КАЖДЫЙ возможный символ КАЖДОГО возможного кодирования?
____ EDIT ____
После первых двух ответов мне нужно уточнить, что мой пример работает, потому что это вывод json_encode, а не фактическая строка!