双向文本 (BiDi)

处理从左到右 (LTR) 和从右到左 (RTL) 文本混合的技术,在包含阿拉伯语和希伯来语的多语言文本中必需。

双向文本 (BiDi: Bidirectional Text) 是处理从左到右 (LTR) 书写的语言与从右到左 (RTL) 书写的语言在同一文本中混合的技术。阿拉伯语和希伯来语采用 RTL 书写方式。

Unicode 双向算法 (UBA) 自动判定文本中每个字符的方向性,确定正确的显示顺序。数字和标点符号具有"弱方向性",其方向根据上下文变化。Unicode 双向文本书籍解释了 UBA 的工作原理。

在 HTML 中,dir="rtl" 属性和 <bdo> 元素用于控制方向。CSS 的 direction 属性和逻辑属性 (margin-inline-start) 对 BiDi 支持也很重要。

BiDi 文本还存在安全隐患:Unicode 方向控制字符已被用于源代码攻击 (Trojan Source)。Web 无障碍与国际化书籍介绍了 BiDi 最佳实践。