> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# 文本对照

[文本对照](https://tools.newzone.top/zh/text-diff)（Text Diff）是一款离线的双栏文本 / 文件比对工具。它不只是把差异标红，还会用一句话直接告诉你**第几行、第几个字段起不同**——省去在满屏红绿高亮里找起点的时间。

![文本对照界面](/img/text-diff-zh.webp "文本对照使用界面")

:::tip 30 秒上手

1. 左右两栏分别粘贴文本，或直接拖入两个文件
2. 看一眼顶部的格式识别结果（纯文本 / CSV / TSV / INI / JSON），不对就手动切
3. 顶部横幅会直接写明**首处差异**的位置，点「跳转」定位
4. 需要给别人时点「导出 diff」，得到可 `git apply` 的 `.patch`

:::

## 首处差异定位

这是本工具与常规 diff 最大的区别：横幅用自然语言写清第一处差异在哪，措辞随格式变化：

| 格式        | 提示样例                   |
| --------- | ---------------------- |
| CSV / TSV | 第 12 行，第 3 列「price」起不同 |
| INI       | 第 8 行，键「timeout」的值不同   |
| 纯文本       | 第 5 行，第 17 个字符起不同      |
| 整行增删      | 第 20 行：B 中新增了一行        |

配合「上一处 / 下一处」按钮可逐块跳转，顶部同时显示「第 i / 共 n 块」。

## 格式识别

工具按扩展名 + 内容双重判定，支持手动覆盖：

- **纯文本**：逐行比对
- **CSV / TSV**：先猜分隔符（`,` `\t` `;` `|` 中挑列数最稳定的一个），再按列比对，支持带引号字段与 `""` 转义
- **INI**：按键值对比，直接告诉你哪个键的值变了
- **JSON**：目前按文本行比对（顶部会有提示）

## 比对选项

- **忽略首尾空白**：忽略每行首尾空格造成的差异
- **忽略大小写**：忽略字母大小写差异
- **字符级比对**：在"修改"行内部再标出具体改了哪几个字符，默认关闭
- **仅看差异**：折叠相同内容，只保留差异块
- **上下文行数**：折叠时每处差异前后保留几行，可选「仅差异行」或前后 N 行

## 视图与导航

- **并排 / 行内**：双栏并排视图与统一的行内视图随时切换
- **放大**：全屏铺满，长文件对比时用
- **交换 A/B**：一键互换两侧内容
- **折叠区展开**：相同内容折叠为「⋯ 隐藏 N 行相同（点击展开）」，需要时点开
- **统计**：顶部显示相似度百分比、A/B 各自行数，以及「N 处差异 · X 改 / Y 增 / Z 删」

## 性能保护

两侧差异过大时，行级比对可能耗时很久。工具内置 **3 秒超时**：超时即停下并提示「比对已超时」，页面不会假死。确实需要完整结果时点「仍要比对」，此次强制运行不设超时上限。任何内容改动都会重新启用超时保护。

## 编码识别

上传文件时自动识别 UTF-8、GBK、Big5、UTF-16LE 等常见编码并显示识别结果，判断不准可手动切换重新解码。对比不同系统导出的 CSV、老项目里的 GBK 配置文件、Windows 日志时尤其有用。

## 导出

- **复制 A / 复制 B**：把某一侧内容复制走
- **导出 diff**：生成标准 unified diff（`.patch`），可直接 `git apply`，或丢进代码评审工具。文件名默认取自右侧 B 的文件名

## 常见用法

- **核对配置改动**：两份 `.ini` / `.env` 拖进来，直接看哪个键的值变了
- **表格数据比对**：两份导出的 CSV，按列定位到底是哪个字段被改动
- **代码评审前自查**：本地改动与线上版本对比后导出 `.patch`
- **翻译稿校对**：开「忽略首尾空白」比对修订前后的译文，只看实质改动

工具完全在浏览器本地运行，**不上传任何数据**，可放心对比敏感配置与私有代码。
