gpt4 book ai didi

java - 在 Java 中将光学等效的 unicode 字符串转换为 ASCII?

转载 作者:行者123 更新时间:2023-11-30 09:14:57 26 4
gpt4 key购买 nike

我运行的社交网络要求 unicode 用户名是唯一的(正如预期的那样)。

一些有创意的用户已经开始使用西里尔(和其他)unicode 字符来创建视觉上等效(但 unicode 不同)的用户名。

例如,他们会使用西里尔小写字母“а”,它看起来与罗马字母相同。

有谁知道在 Java 中自动转换这些光学等效字符的方法?如果机制已经存在,我宁愿不必手动创建转换表。

最佳答案

你可以试试Unicode normalization - 基本上,无法区分的代码点有一个指定的“规范”代码点,规范化是用规范形式替换每个字符的过程。

Java 似乎通过 java.text.Normalizer 支持 Unicode 规范化 - 更多信息 here .

但是,我不确定拉丁字母 A 和西里尔字母 A 在 Unicode 中是否被标记为等同 - 您必须尝试一下。

当您的用户开始使用非常相似而不是相同字符时,这对您也无济于事 - 人类非常有创造力,技术解决方案在这里可能无法 100% 奏效,所以无论如何你都可能不得不求助于人类节制。

还有一些其他解决方案 - 例如,将用户名限制为拉丁字母数字。

关于java - 在 Java 中将光学等效的 unicode 字符串转换为 ASCII?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20170256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com