Преобразовать «Необычные» ABC Unicode к стандартному ABC

Я запускаю проверки Regex для определенных входных данных на моем сайте, но Regex ошибочно возвращает false, когда пользователи используют «необычные» наборы Unicode, такие как:

ⓜⓐⓣⓒⓗ
����������
матч
����������
����������
����������
����������
����������
����������
����������
����������
����������
����������
⒨⒜⒯⒞⒣
����������
����������
����������

Это не разные шрифты, это разные символы! Ни один из них не соответствует /Match/ (доказательство)

Как я могу преобразовать пользовательский ввод в стандартные символы ABC перед выполнением проверок Regex? (Я использую PHP, если это имеет значение)

3

Решение

Юникод НФКД нормализация следует позаботиться о большинстве из них. Тем не менее, кажется, это работает только если intl Модуль включен, и у меня его нет в моей среде, поэтому я не могу его протестировать. Если у вас также нет такого PHP и вы не хотите его устанавливать, это делает что-то похожее, по крайней мере, для некоторых символов:

iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text)

Наконец, вы можете сделать свое собственное отображение, например, используя strtr (что вы будете знать, чтобы работать, так как вы написали бы это сами).

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector