书背后那一小块黑白条纹,很多人只知道「扫一下能查到书」,但它其实是一串有严格结构的数字,每一段都有含义,最后一位还能当场手算出来验对错。
搞清楚它的结构,在两个场合立刻有用:手工录书号时能自己判断有没有抄错,以及判断两本书到底是不是同一本。
先纠正一个常见误解:ISBN 就是条码本身
不存在「把 ISBN 转换成条码」这回事。现行的 ISBN 是 13 位数字,它在设计上就等同于一个 EAN-13 商品条码——和超市里矿泉水瓶上那种码是同一套编码规则。
| 说法 | 实际 | |
|---|---|---|
| 常见误解 | ISBN 是书号,条码是另印上去的 | 条码编的就是这 13 位数字 |
| 常见误解 | 要专门的图书扫码器 | 任何能读 EAN-13 的设备都行 |
| 常见误解 | 扫码得联网数据库才有意义 | 扫出来的就是书号本身,联网只是拿它去查书名 |
之所以图书能在 EAN-13 里占住一块地盘,是因为前缀 978 和 979 被专门划给了图书,业内管这个虚拟国家代码叫 Bookland。
五段结构:978-7-115-42802-8
以这串号为例,它被切成五段:
| 段 | 值 | 含义 |
|---|---|---|
| 前缀 | 978 | 图书前缀(Bookland) |
| 组号 | 7 | 地区/语种组,7 = 中国大陆 |
| 出版者号 | 115 | 具体哪家出版社 |
| 书名号 | 42802 | 该社内部的第几种书 |
| 校验位 | 8 | 由前 12 位算出 |
有两个细节容易踩坑:
组号是变长的。 出书量越大的语言区,组号越短——0 和 1 是英语区,2 是法语,3 是德语,4 是日本,7 是中国大陆。中国大陆能拿到一位数,是因为年出版品种数量极大。港台不在这个组:台湾常见 957、986,香港常见 962、988。
出版者号也是变长的。 大社号段短,小社号段长。两段都变长,意味着你没法靠数位数把一串 ISBN 切开——中间的边界只能查号段表。
这个结论在实务上很重要:想从书号里解析出「哪家出版社」,靠自己写规则切分是行不通的。
校验位:三十秒手算
前 12 位从左到右依次配权重 1、3、1、3……乘完求和,取和的个位数 r,校验位 = (10 − r) mod 10。
拿 978-7-115-42802-8 走一遍:
| 位 | 9 | 7 | 8 | 7 | 1 | 1 | 5 | 4 | 2 | 8 | 0 | 2 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 权重 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 |
| 乘积 | 9 | 21 | 8 | 21 | 1 | 3 | 5 | 12 | 2 | 24 | 0 | 6 |
合计 112,个位是 2,10 − 2 = 8,和末位的 8 对上了。
最后那个 mod 10 别漏:r 为 0 时校验位是 0,不是 10。
它能挡住什么错
- 单个数字抄错——一定查得出来。
- 相邻两位调换(最高频的手误)——大多数情况能查出来,但不是百分之百:差值恰好为 5 的相邻两位对调会漏网。
所以校验位过了不等于书号一定对,但校验位不过,一定错。手工录入时先过一遍这一关,能省掉大量「查不到书还以为是数据库的锅」的时间。
978 和 979 的分工
979 不是什么特殊待遇,就是 978 号段快用完了之后开的第二个池子。
- 979-10 分给法国。
- 979-8 大量用于自出版平台,亚马逊 KDP 的自出版书号多半长这样。
需要留神两点:
- 979 开头的书号没有 10 位形式。ISBN-10 时代还没有 979 这个前缀,所以它只能是 13 位。有些老系统只认 978 打头,遇到 979 报「无效书号」,那是系统没跟上。
- 自出版书号在公共书目库里往往查不到元数据。扫出来一串号但带不出书名作者,多半就是这类,只能手工补。
10 位老书号怎么换算
2007 年前出版的书通常只印 10 位。换算规则:
- 取前 9 位(丢掉最后那位校验位);
- 前面拼 978,凑成 12 位;
- 按 1、3 交替重算校验位。
新旧校验算法完全不同——ISBN-10 用的是模 11,所以它的校验位可能是 X(代表 10);13 位的校验位永远是 0–9。
藏书场景下只有一条建议:统一存 13 位。同一本书在书目里一处存 10 位、一处存 13 位,查重必漏。
条码旁边那截短码不是书号
有些书在主码右侧还印着一小段 2 位或 5 位的码,那是附加码:5 位的多用于标价(进口书常见),2 位的多用于期刊期号。
它不属于 ISBN。 有些扫码设备会把主码和附加码连成 15 位或 18 位一起返回,录入前必须截断,否则拿去查库一定落空。
判断标准只有一条:书号永远是 13 位,多出来的都不是。
回到最实际的问题:这串号能帮你判断「是不是同一本书」吗
能,但要分清两层。
ISBN 完全相同 = 同一版同一次印刷序列的同一种书。 这是硬判定,扫出来一样就是重了。
ISBN 不同,书名作者却一样 = 另一个版本。 换出版社、换译者、精装改平装、再版重排,书号都会变。这时候它是不是「重复」,取决于你自己的标准——收藏译本的人会认为不重,只想读完的人会认为重。
这是所有藏书查重方案的分水岭:只按书号判,会漏掉换版重买;只按书名判,会把你有意收的不同译本误报成重复。 两级都给出来、由人拍板,才是可用的做法。