首页 > 解决方案 > 用对应的英文字母替换特殊字符

问题描述

寻找一个实现或库(最好是在 Java 中),它将如下所示的Unicode文本转换为相应的ASCII英文字符:

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

以下应转换为:

登记

但是请注意,还有其他可能要转换的字符,例如“cσdє”。

最终目标是进行phenetic/fuzzy match,但是我相信一旦字符是实际的 ASCII 英语,这将变得容易。

标签: javaunicodefuzzy-searchunicode-normalizationphonetics

解决方案


事实证明它们被称为 Homoglyphs,所以我们试图防止 Homoglyph/Homograph 攻击。

我发现这个库Homoglyph Detection是一个很好的解决方案起点;它们提供了良好的映射,但不完整,无法真正阻止垃圾邮件。

让社区共享和完成这样的 unicode 到 latin 映射文件会很好。


推荐阅读