箱号校验
集装箱箱号校验位怎么算(ISO 6346)
集装箱号共 11 位:前 3 位是箱主代码(字母),第 4 位是设备类别(字母,U 表示集装箱),接着 6 位数字序列号,最后 1 位是校验位。校验位不是随便定的,是前 10 位按 ISO 6346 规则算出来的——本页用 ISO 6346 标准给的示例箱号 CSQU3054383,把这个计算过程逐步拆开,数字来自本站箱号校验工具自己的计算函数。
第一步:字母查值表
前 4 位字母按下表查出对应数值(A 从 10 开始按字母顺序编号,跳过 11、22、33 这三个 11 的倍数):
| A | B | C | D | E | F | G | H | I | J | K | L | M |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 |
| N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 36 | 37 | 38 |
第二步:每一位乘以权重再求和
从左往右第 1 位(i=0)权重是 2⁰=1,第 2 位权重 2¹=2,以此类推到第 10 位 2⁹=512;第 5~10 位是数字,直接代入本身的值:
| 位置 | 字符 | 数值 | 权重 2ⁿ | 乘积 |
|---|---|---|---|---|
| 第 1 位 | C | 13 | 1 | 13 |
| 第 2 位 | S | 30 | 2 | 60 |
| 第 3 位 | Q | 28 | 4 | 112 |
| 第 4 位 | U | 32 | 8 | 256 |
| 第 5 位 | 3 | 3 | 16 | 48 |
| 第 6 位 | 0 | 0 | 32 | 0 |
| 第 7 位 | 5 | 5 | 64 | 320 |
| 第 8 位 | 4 | 4 | 128 | 512 |
| 第 9 位 | 3 | 3 | 256 | 768 |
| 第 10 位 | 8 | 8 | 512 | 4096 |
| 求和 | 6185 | |||
第三步:取模两次,得到校验位
校验位 = (求和 ÷ 11 的余数) ÷ 10 的余数:6185 % 11 = 3,3 % 10 = 3。CSQU3054383 第 11 位实际写的是 3,和算出来的 3 一致,校验通过(工具判定:正确)。
常见问题
算出来的校验位和箱号第 11 位不一样怎么办?
说明抄录时某一位录错了——常见是输错一位数字、相邻两位顺序颠倒,或者把数字 0 抄成字母 O。请回到提单、设备交接单上核对原始箱号,不要直接把校验位改成算出来的数字;有疑问用箱号校验批量校验一遍更快。
为什么字母对照值要跳过 11、22、33?
这是 ISO 6346 标准本身的规定,跳过 11 的倍数是为了避免数值和后面的模 11 运算产生规律性冲突,具体设计意图以标准原文为准;使用时记住查表结果就行,不需要重新推导。
校验通过就说明箱号一定真实存在吗?
不一定。校验位只能发现大部分录入错误,箱号是否真实存在、对应哪艘船哪个航次,还要以船公司或码头的数据为准。