这个问题是指在索引中存储本地名称的国际字符的规范化。我想一般性地讨论这个问题,也想听听 Java 中可能存在的解决方案(类/库)。
在全局应用程序中,用户输入自己的姓名,应用程序将每个姓名写入搜索索引,以便其他用户可以搜索姓名并找到用户。在英语中微不足道,但在许多其他语言和/或全球范围内并不那么微不足道,因为特定字母需要音译和/或可以以多种形式书写。例如,德国名字 Häußler 可以写成
- 豪斯勒(德国)
- Haeussler(德国,国际音译)
- 豪斯勒(瑞士)
- 豪斯勒(英文音译)
Java有
Normalizer.normalize(entry, Normalizer.Form.NFD) // NFC
类,但这似乎在很多情况下都不起作用和/或我不知道如何正确使用它。很好的阅读也在这里http://en.wikipedia.org/wiki/Unicode_equivalence但我找不到足够的关于这个主题的捆绑信息。
有人知道现有的开源项目已经有人解决了这个问题吗?有什么可以使用的库吗?网站?
您是如何将日本人、中国人、阿拉伯人等人的语言音译成英语的?像 Facebook 这样的大型社交网络如何音译他们的用户名,以确保他们可以在国际上找到?