3Q工具箱
首页 / 教程中心 / 文本与写作

文本比对怎么看懂 diff:字符级、单词级、行级该选哪个

文本与写作发布于 2026-09-06

「这两份文件到底改了哪里」是个高频需求:合同改了第几版、同事发来的配置和线上的差在哪、翻译稿被谁动过。逐行肉眼看几百行的东西不现实,也不可靠。

diff 工具能解决这个问题,但用出来满屏都是红绿色块、根本看不出重点,通常是两个原因:粒度选错了,或者没先统一格式

一、三种粒度分别对应什么内容

文本比较工具提供字符级、单词级、行级三种模式,选择依据是「你关心的最小改动单位是什么」。

行级:以整行为最小单位,一行有任何变化就整行标为修改。适合代码、配置文件、日志、CSV。这是默认应该先试的模式——代码和配置本来就是按行组织的,一行一个语义单元,标到行就够定位。

单词级:以词为单位,同一行内只高亮变化的那几个词。适合中英文文章、合同、翻译稿。改了一个金额、换了一个措辞,行级会把整段标红,单词级只标那个词,一眼就能看到。

字符级:逐字符比较。适合短字符串:密钥、ID、URL、哈希值。查「为什么这两个 token 不一样」时用它,能定位到具体第几个字符不同(往往是大小写或者 0O)。用在长文本上会得到密密麻麻的碎片高亮,反而看不清。

中文有个特殊情况:中文不用空格分词,多数按空白切词的工具在中文上的「单词级」实际接近字符级。所以中文长文本用单词级或字符级都可能偏碎,行级(按段落成行)常常反而最清楚

二、满屏差异的三个真实原因

换行符不一致。Windows 的 \r\n 对 Mac/Linux 的 \n。从两个不同环境拿到的文件,可能每一行都被标为「已修改」,而内容完全一样。这是最常见的假差异。

缩进从制表符变成了空格(或者相反)。编辑器配置不同、有人开了「保存时格式化」,就会整个文件的缩进都变。行级 diff 下全文皆红。

尾随空白。行尾多一个空格,肉眼不可见,diff 照样报差异。

排查方法:如果差异数量等于(或接近)总行数,几乎一定是格式问题而不是内容问题。多数工具有「忽略空白差异」选项,先勾上再看。

三、比对前先做的一步:统一格式

原则是:先让两边的格式一致,再比内容

  • JSON:不要直接做文本比对。JSON 对象的键在语义上无序,{"a":1,"b":2}{"b":2,"a":1} 等价,文本 diff 会报差异。应该用 JSON 差异对比按结构比较,它按层级输出新增、缺失、值变化三类结果。
  • SQL:两个人写的同一条查询,换行和大小写风格可能完全不同。先用 SQL 格式化把两边都规范化,再做行级 diff。
  • 中文文档:先用中英文智能排版统一全半角标点和中英文之间的空格,否则「,」和「,」、有无盘古之白都会被算作差异。
  • 代码:用项目自己的格式化工具(Prettier、gofmt 之类)跑一遍两边,或者在 diff 里开启忽略空白。

这一步做了,剩下的差异才是真正需要看的内容差异。

四、并排还是统一视图

并排显示(左右两栏):适合宽屏、适合改动分散在多处、适合需要对照上下文的场景。缺点是行很长时要横向滚动。

统一显示(上下堆叠,删除行和新增行相邻):适合窄屏、适合改动集中、适合复制某一侧的内容。代码审查里习惯看这种。

没有优劣,按屏幕宽度和改动分布选。

五、diff 帮不了你的地方

它只告诉你「哪里不同」,不告诉你「哪个对」。 合同比对出五处差异,哪一处是对方偷偷改的、哪一处是你们协商同意的,只能人判断。

它不理解语义。 变量重命名在 diff 里表现为大量删除加新增,实际是一次等价重构;反过来,> 改成 >= 只有一个字符的差异,可能是个严重 bug。差异的字符数和重要性没关系。

它不适合超大文件。 浏览器里做几万行的字符级比对会明显卡顿。大文件建议用命令行 diffgit diff,或者先拆分范围。

它没有历史。 只比两个版本。要看一个文件演变过程,那是版本控制的活。

常见问题

为什么内容一模一样还报差异? 按第二节排查:换行符、缩进(Tab/空格)、行尾空白、全半角标点。开启「忽略空白差异」能快速验证是不是格式问题。

能比对 Word、PDF 文件吗? 不能直接比。这类工具比的是纯文本,需要先把内容复制成文本。这样会丢掉样式和批注,Word 稿件建议用 Word 自带的「审阅 - 比较文档」。

能比对两个文件夹或多个文件吗? 本工具是两段文本对比。批量、多文件场景应该用桌面 diff 软件或 Git。

差异统计里的「修改」是怎么算的? 一行内容变化在多数实现里记为「一处删除 + 一处新增」,展示时合并为「修改」。所以统计数字在不同工具间可能不同,看趋势不要抠绝对值。

合同、简历这类内容会上传吗? 不会。文本比对在浏览器本地用 diff 算法完成,两侧内容都不上传服务器。涉及未公开合同、薪资信息时,这一点是硬要求。

文中用到的工具

同类教程