转换";幻想"unicode ABC到标准ABC



我对网站上的某些输入运行Regex检查,但当用户使用"Fancy"Unicode集(如:)时,Regex错误地返回false

Ⓜ ⓣⓗMatch⒨⒜

这些不是不同的字体,它们是不同的字符!/Match/(Proof)无法匹配这些

在运行Regex检查之前,如何将用户输入转换为标准ABC字符?(我用的是PHP,如果有区别的话)

NFKD unicode规范化应该处理其中的大部分。然而,它似乎只有在启用了intl模块的情况下才能工作,而我的环境中没有它,所以我无法测试它。如果你也没有这样的PHP,并且不想安装它,这会做一些类似的事情,至少对一些字符来说是这样的:

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

最后,您可以制作自己的映射,例如使用strtr(然后您就会知道它是有效的,因为您已经自己编写了它)。

最新更新