我正在尝试根据对其包含的字符方向性的分析来定义文本行的方向性。每个 Unicode 字符都有一个独特的属性——由 Unicode 标准定义的方向性。在 Java 中可以通过以下方式查询:
Character.getDirectionality()
由于 iOS 提供了开箱即用的上下文(又名第一个强)文本方向,我认为这种分析/处理是由 iOS 内部完成的。但是,我还没有在 Objective C 中找到任何公开可用的 API 组合来实现这一点。
在 NSLocale 中,我找到了一个 API (characterDirectionForLanguage),它返回给定语言的自然文本方向(即阿拉伯语/希伯来语 -> RTL,英语 -> LTR)。但是,我还没有找到任何 API 可以帮助我理解给定字符属于哪种语言。
我们当然可以考虑基于字符范围的启发式方法。例如,定义英语和希伯来语字符范围,并根据其中一个给定字符的包含来决定使用 characterDirectionForLanguage 函数的方向性。但是,这只是一种启发式方法,因为它并未涵盖所有语言中的所有字符。
有没有办法以编程方式可靠地识别 Objective C 中给定字符的方向性?