Unicode-BIDI(UBA):R-RLI-R;为什么RLI应该保持在0级

Unicode-BIDI(UBA):R-RLI-R;为什么RLI应该保持在0级,unicode,bidi,Unicode,Bidi,为BIDI实现隔离逻辑使我再次陷入困境。给出以下测试用例 @Levels: 1 0 1 @Reorder: 0 1 2 R RLI R ; 2 # LTR flag \____/ \_/ (my run sequences) 以下是我目前的理解: 处理完规则X1-X8后,您将得到级别01,该级别将转换为两个独立的运行序列 据我所知,规则W1-W7不应适用于任何字符 但是,规则N1将把RLI的级别提高到1,因为它是介于第一个序列的R和eos两个强类型之间的NI 然后,规则I1/2将第一个R

为BIDI实现隔离逻辑使我再次陷入困境。给出以下测试用例

@Levels: 1 0 1
@Reorder: 0 1 2
R  RLI  R ; 2  # LTR flag
\____/ \_/ (my run sequences)
以下是我目前的理解:

处理完规则X1-X8后,您将得到级别
01
,该级别将转换为两个独立的运行序列

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

但是,规则N1将把
RLI
的级别提高到1,因为它是介于第一个序列的
R
eos
两个强类型之间的
NI

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

规则L1可以降低RLI的级别,但不适用于此处

这是怎么回事,RLI应该在0级结束


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

@Levels: 2 1 2
@Reorder: 2 1 0
L LRI L; 4
遗憾的是,它没有实现最新的算法,包括RLI/LRI

任何建议欢迎:)谢谢。

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


我错过了X10处的注释,该注释指出:……如果没有,或者序列的最后一个字符是隔离启动器(缺少匹配的PDI),具有段落嵌入级别。”

进一步检查,我认为我计算eos是错误的。考虑到X10注释”…如果没有,或者序列的最后一个字符是隔离启动器(缺少匹配的PDI),则具有段落嵌入级别。”