RTL语言(希伯来语,阿拉伯语等)字符串以哪种顺序存储在内存中?

时间:2012-05-17 06:01:06

标签: c# string memory right-to-left

操作系统如何知道是否在字符串上应用bidi算法用于显示目的?

我知道希伯来语可能采用ISO-Logical形式,但操作系统如何知道如何指出特定字符串包含希伯来语(或任何其他RTL语言)?

2 个答案:

答案 0 :(得分:2)

根据How to detect whether a character belongs to a Right To Left language? - 似乎它们是从左到右存储的,而且是字符代码决定它是否是RTL语言。

答案 1 :(得分:0)

现在,按照Unicode标准的建议,这样做的方法是按逻辑顺序存储文本(良好的解释here),这意味着它的读取顺序。

操作系统通过查看字符代码知道特定字符串包含希伯来语。它应用Unicode Bidirectional Algorithm来确定正确的显示顺序。通常,操作系统会首先快速扫描字符串,以查看是否存在约束订单的任何从右到左的字符或控制代码。如果没有,则字符串不需要重新排序。