Unicode Bidi(UBA):r rli r;RLI为什么要保持0级



实现bidi的Inalater逻辑使我再次陷入困境。给定以下测试案例。

@Levels: 1 0 1
@Reorder: 0 1 2
R  RLI  R ; 2  # LTR flag
____/ _/ (my run sequences)

这是我目前的理解:

处理后规则x1-x8 您最终会得到级别0 0 1,它将转换为两个孤立的运行序列。

据我所知,规则W1-W7 不应适用于任何字符。

规则N1 将提高RLI至1的水平,因为它是两种强类型之间的NI,即R和第一个序列的eos

规则I1/2 然后将第一个R推到1级。

规则L1 可以降低RLI的水平,但在此不适用。

如何,RLI应最终达到0级。


与类似测试的同样问题,只有相反的方向。

@Levels: 2 1 2
@Reorder: 2 1 0
L LRI L; 4

可悲的是http://unicode.org/cldr/utility/bidi.jsp不会实现包括rli/lri的最新算法。

欢迎任何建议:)谢谢。

好吧,问题是规则N1 不应应用,因为eos是类型L而不是R

我错过了x10的注释,说:...如果没有,则该序列的最后一个字符是孤立启动器(缺少匹配的PDI),段落嵌入了级别。"

最新更新