Удалить символы мусора в utf

Я использую формат utf8 для хранения всех моих данных в mysql. Прежде чем данные будут вставлены в базу данных, мне нужно очистить строки ненужными символами. Строки находятся в формате utf8. Я знаю, как использовать regex и string replace, но не знаю, как работать с арабскими символами.

Пример строки, которую необходимо очистить: «████ .. القوانين الجديدة في قسم العناي»;

Благодарю вас

ОК. Как уже сказал @Jonathan Leffler , если вы можете указать диапазоны символов Юникода для символов, которые необходимо заменить, вы можете использовать регулярное выражение для замены символов пустой строкой.

Символ unicode указывается как \x{FFFF} в выражении (в PHP). Кроме того, вы должны установить модификатор u , чтобы PHP обрабатывал шаблон как UTF8.

Итак, в конце концов, у вас есть что-то вроде этого:

 preg_replace('/[\x{FFFF}-\x{FFFF}]+/u','',$string); 

где

  • /.../u – разделители плюс модификатор
  • [...]+ является символьным классом плюс квантификатор, что означает совпадение любого из этих символов внутри одного или более
  • \x{FFFF}-\x{FFFF} – это диапазон символов Юникода (очевидно, вы должны указать правильные коды / номера символов).

Вы также можете отрицать группу с помощью ^ вы можете указать диапазон, который вы хотите сохранить:

 preg_replace('/[^\x{FFFF}-\x{FFFF}]+/u','',$string); 

Больше информации:

  • Обычные выражения
  • Регулярные выражения в PHP
  • Графики Unicode