将特殊字符替换为相应的英文字母

3
寻找一个实现或库(最好是Java),可以将Unicode文本(例如下面的文本)转换为相应的ASCII英文字符:

ʀᴇɢɪꜱᴛʀᴀᴛɪᴏɴ

下面应该转换成:

REGISTRATION

请注意,还有其他可能要转换的字符,例如“cσdє”。
最终目标是进行音标/模糊匹配,然而我认为一旦字符变成实际的ASCII英语,这将变得容易。

好的,重要的问题是你需要知道将哪个字符映射到哪个字符。实际上,替换只需要调用replaceAll函数即可。 - Ben
@Ben 我有大约60个字符串的样本,我可以开始实现一个覆盖整个“已知”集合的字符映射。但是由于有这么多字符,我正在检查是否有人已经在此方面做了工作。 - abdelrahman-sinno
1
这里有一个相关的帖子:https://security.stackexchange.com/questions/128286/list-of-visually-similar-characters-for-detecting-spoofing-and-social-engineeri - Graham Asher
1个回答

1
结果表明它们被称为同形异义词,因此我们正在尝试防范同形异义词攻击。
我发现这个库同形异义词检测是解决方案的一个很好的起点; 它们提供了良好的映射,但不完整,无法真正停止垃圾邮件。
如果社区可以共享和完善这样的Unicode-to-Latin映射文件,那将是很好的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接