gpt4 book ai didi

ios - 相同的字符显示不同的十六进制代码

转载 作者:行者123 更新时间:2023-11-28 22:11:05 25 4
gpt4 key购买 nike

unichar c1 = 12098;
unichar c2 = 25991;

当我打印 This characters 显示以下值时,

(unichar) $2 = U+2f42 u'⽂'
(unichar) $3 = U+6587 u'文'

相同的字符但不同的十六进制代码。我想在这种不同的编码中识别相似的字符。喜欢下面

if(c1 == c2){
}

实际情况比这复杂。一组文本是使用字形从 pdf 文件编码中提取的文本,另一组是搜索文本词。

提前致谢。

最佳答案

Same character but different hex code.

完全相同的字符。一个是中文的写字;另一个是指许多相关词使用的部首。这就像字母“我”和单词“我”之间的区别。

差异是如此微不足道以至于 Unicode 宁愿不关心它,但为了兼容性不得不关心它。部首 U+2F42 对另一种形式具有“相容性分解”,因此您可以通过先将两个字符串归一化为 Normal Form KD 来比较它们是否相等。在 NSString 中,该操作是 decomposedStringWithCompatibilityMapping .

I want to identify similar characters

这可能是一个更广泛的问题 - 需要查看更多示例才能确定仅兼容性规范化是否可以满足您的需求。

识别通常看起来相似的字符是一项开放式任务。例如,不相关的希腊语 ν (nu) 和拉丁语 v 应该匹配吗?数字 0 和字母 O 怎么样?

Unicode TR39有confusables的概念对于通常在视觉上相似的字符,这是针对安全问题但可能有所帮助。 NSString 没有内置的东西来比较这些,所以你必须下载 confusables.txt并自己逐个字符映射。

关于ios - 相同的字符显示不同的十六进制代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22906103/

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