操作系統如何知道是否將字符串上的bidi算法應用於顯示目的?以何種順序將RTL語言(希伯來語,阿拉伯語等)字符串存儲在內存中?
我知道希伯來語可能會採用ISO邏輯形式,但操作系統如何知道如何指定特定的字符串包含希伯來語(或任何其他RTL語言)?
操作系統如何知道是否將字符串上的bidi算法應用於顯示目的?以何種順序將RTL語言(希伯來語,阿拉伯語等)字符串存儲在內存中?
我知道希伯來語可能會採用ISO邏輯形式,但操作系統如何知道如何指定特定的字符串包含希伯來語(或任何其他RTL語言)?
根據How to detect whether a character belongs to a Right To Left language? - 它們似乎是從左到右存儲的,它是指示它是否是RTL語言的字符代碼。
現在,按照Unicode標準推薦的方式,按照邏輯順序存儲文本(很好的解釋here),這意味着讀取的順序。
操作系統通過查看字符代碼知道特定的字符串包含希伯來語。它應用Unicode Bidirectional Algorithm來確定正確的顯示順序。通常,操作系統會首先快速掃描字符串,以查看是否有任何從右到左的字符或控制代碼來約束訂單。如果不是,則該字符串不需要重新排序。