Заменить символ, не поддерживаемый в кодировке, пробелом - PullRequest
1 голос
/ 24 декабря 2010

Я получаю определенный текст в наборе символов utf8, теперь я хочу преобразовать его в ASCII, и символы, которые не поддерживаются в ASCII, должны быть заменены пробелом в PHP.Текущий код, который я использую:

  $input_encoding = mb_detect_encoding($toClean);
  mb_substitute_character("long");
  $encoded = mb_convert_encoding($toClean, "ASCII", "auto");

Теперь в выводе отображаются такие символы, как «testU + 2013ng», я хочу, чтобы этот U + 2013 был заменен пробелом.Я попытался использовать регулярное выражение ниже

$encoded = preg_replace("~U\+[\d\w]{4}~", " ", $encoded);

Теперь в выводе отображается текст типа «Дорога» + CB9 + CA4 + CAEU +.Как удалить все не поддерживаемые символы с помощью preg или чего-то еще.

1 Ответ

1 голос
/ 24 декабря 2010

Я не вижу ничего особенно плохого в регулярном выражении, но вы можете упростить его до:

U\+\d{4}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...