# Unicode 双向算法配对括号/隔离/嵌入控制符规则逐步解说器

逐条运行 UAX #9 Unicode 双向算法——X1–X8 嵌入级别、隔离运行序列、BD16 配对括号与 N0、W/N/I 解析、L1/L2/L4 重排——并查看每个中间状态。

> 标准页面: https://elysiatools.com/zh/tools/unicode-bidi-paired-bracket-isolate-embedding-cf-rule-explainer

- **分类:** Text Processing

- **关键词:** unicode 双向算法, uax 9, bidi 算法, 从右到左, 嵌入级别, 隔离符, 配对括号, 双向控制字符

## 概述

按逻辑顺序输入文本；双向控制符可用 记号或 \\uXXXX 转义插入。输出包含：P2/P3 段落方向判定、X 阶段状态栈与溢出计数、每条隔离运行序列的 sos/eos、逐字符的 W1–W7 与 N0–N2 类型变迁（括号条款 N0b/N0c1/N0c2/N0d）、I1–I2 最终级别、每一轮 L2 反转、以及带 L4 镜像的最终视觉顺序。

## 输入项

- **文本（逻辑顺序，支持 记号与 \\uXXXX 转义）** (textarea): he said “abc אבג def.” אב (cd) אב חשבון: 12 + 34
- **段落方向** (select)

## 适用场景

- 排查阿拉伯语、希伯来语与拉丁字母、数字或括号混排时的显示错乱与反转异常。
- 调试和验证包含显式控制符（如 RLI、LRI、FSI、PDI、RLO、PDF）的复杂国际化文本渲染逻辑。
- 学习或实现 UAX #9 双向算法，需要逐字符对照查看 W1–W7、N0–N2 与 I1–I2 的中间状态和规则分支。

## 工作原理

- 解析逻辑文本输入中的字符及其 \\uXXXX 转义或 等控制记号，依据 P2/P3 规则或手动设定计算基础段落嵌入级别。
- 执行 X1–X8 阶段维护嵌入与隔离状态栈，切分出各条隔离运行序列（Isolating Run Sequences）并确定序列边界上下文（sos/eos）。
- 在各序列内按顺序应用 W1–W7 弱类型解析与 N0–N2 中性/括号解析规则（包括 N0b/N0c/N0d 括号方向判定）。
- 依据 I1–I2 规则计算字符最终嵌入级别，执行 L2 多层级反转切片与 L4 字符镜像，输出完整的逐步解说与最终视觉顺序。

## 使用案例

- 国际化排版引擎与富文本编辑器开发中双向重排算法的单元测试与逻辑验证。
- 排查多语言混合 UI（如带有英文代码片段或括号的希伯来语界面）中的标点错位与字符串颠倒缺陷。
- 对照 Unicode 官方 UAX #9 规范验证隔离运行序列（sos/eos）与显式状态栈的推导过程。

## 常见问题

### 工具支持输入哪些双向控制字符记号？

支持输入 、、、、、、、、、、、 记号及 \\uXXXX Unicode 转义序列。

### 段落方向选项中的“自动”是如何判定的？

自动模式遵循 UAX #9 的 P2 和 P3 规则，依据文本中出现的第一个强方向字符（L、R 或 AL）来确定基础段落级别。

### N0 规则如何处理括号配对的排版方向？

N0 规则依据 BD16 识别成对括号，结合括号内外强字符上下文（N0b、N0c1、N0c2、N0d 条款）决定括号是采用文本嵌入方向还是跟随内部方向。

### 为什么在段落中添加 RLI/PDI 比 RLE/PDF 更有利于避免溢出？

隔离控制符（如 RLI）创建独立的隔离运行序列，其内部内容在计算中不会影响外部弱字符和中性字符的解析，能有效防止方向性污染。

### 最终视觉顺序中的括号为什么会改变方向？

这是 L4 规则（镜像属性）的作用。在 RTL 上下文中解析为从右向左呈现的配对字符，会自动替换为其镜像字形以确保视觉对称。

## 相关工具

- [去除重复行](https://elysiatools.com/zh/tools/remove-duplicate-lines): 对列表或文本块中的行去重。保留每行的首次或最后一次出现，支持区分大小写、比较前修剪空白和忽略空行。
- [删除线文本](https://elysiatools.com/zh/tools/strikethrough-text): 用 Unicode 组合标记 U+0336 给每个字符加删除线。纯文本，无需 Markdown。
- [文本 NLP 标注工作台](https://elysiatools.com/zh/tools/text-nlp-annotation-workbench): 使用可解释的本地规则完成分词、句子切分、停用词、词形、词干、实体和 n-gram 标注，并导出 JSONL 或 CoNLL。
- [文本重复器](https://elysiatools.com/zh/tools/text-repeater): 把文字重复 N 次，并按所选分隔方式连接——同行连续、每行一个，或编号倒计时。用于聊天刷屏、戏剧性铺垫和社交媒体效果的快捷工具。
- [下划线文本](https://elysiatools.com/zh/tools/underline-text): 用 Unicode 组合标记 U+0332 给每个字符加下划线。纯文本，无需 HTML。
- [三方文本比较与合并套件](https://elysiatools.com/zh/tools/three-way-text-comparison-merge-suite): 行/词/字符级 diff、忽略大小写/空白规则、三方合并(冲突标记)、unified patch 与审阅报告
- [BFV、CKKS、LWE 全同态加密密文噪声预算、重线性化与自举讲解器](https://elysiatools.com/zh/tools/bfv-ckks-lwe-fhe-ciphertext-noise-budget-relin-and-bootstrapping-explainer): 在 Z_q\[x\]/(xⁿ+1) 上运行真实的迷你 BFV/CKKS 流水线：精确的不变噪声预算（比特）、带重线性化的密文乘法、模数切换、SIMD 槽位打包与自举刷新。
- [高级重复行去除器](https://elysiatools.com/zh/tools/advanced-duplicate-line-remover): 检测并移除文本中重复的行，支持模式、大小写敏感和修剪选项

## 示例

- [十六进制/Unicode转换样本](https://elysiatools.com/zh/samples/text-hex-unicode-formats): 十六进制和Unicode转义序列转换的测试样本
- [无版权MP3音频样本](https://elysiatools.com/zh/samples/mp3-samples): 免费使用和测试的无版权音频样本集合，包括自然声音、冥想音乐和环境音频，适用于测试和开发目的
- [特殊字符示例](https://elysiatools.com/zh/samples/text-special-characters-samples): 用于测试非字母数字字符移除的各种特殊字符、标点符号和符号的示例文本文件
- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
