给定一个 Unicode 字符,我们想找出包含该字符的语言,更重要的是,了解每种语言是否是Left-To-Right
. 例如,字符A
可能是两者English
,Spanish
两者都是 LTR 语言。
我想要这个用于我自己的文本编辑器。谁能帮我找到一个 API 函数或解决我的问题的东西?
提前致谢
Unicode 方面,LTR/RTL 是字符的属性,而不是使用该字符的语言的属性。这很重要,因为阿拉伯语文本中的嵌入英语应该从左到右显示,即使为简单起见,整个文档可能被标记为阿拉伯语。如果您使用的是JCL,则可以使用UnicodeIsLeftToRight
和UnicodeIsRightToLeft
函数获得这些属性。请注意,字符可能既不是从左到右也不是从右到左,还请注意,JCL 使用 Unicode 字符列表的私有副本,该副本可能与任何特定版本的 Windows 使用的版本略有不同。
关于标题中的问题,您需要对世界语言中字符的使用进行广泛的研究。有几千种语言,尽管其中许多没有固定的书写系统;另一方面,一些语言有几种书写系统。一种语言的不同变体可能具有不同的字符库。
所以这将是一项重大的努力,尽管已经在CLDR库中编译了一些数据——但“语言中使用的字符”的概念还远不清楚。(字符 æ、è 和 ö 是否在英语中使用?它们肯定出现在某些形式的书面英语中。)
因此,期望为此目的找到一个库例程是不现实的。
显然,您真正需要的是确定一个角色是从左到右的角色还是从右到左的角色。但为了完整起见,我已经为您实际提出的问题提供了答案,这可能与其他一些情况有关。