GTIN 校验位计算器
粘贴不含校验位的数字(7、11、12 或 13 位),得到补全后的条码 —— 整个计算过程都摊开给你看,而不只是答案。
🔒 你的数据不会离开浏览器。
各种输入长度如何解读
本工具从不猜。可能有两种含义的长度会同时展示两种解读:
| 你粘贴的是 | 解读 |
|---|---|
| 7 位 | GTIN-8 的数据位 → 补全为 8 位 |
| 8 位 | 完整的 GTIN-8 → 验证校验位 |
| 11 位 | UPC-A 的数据位 → 补全为 12 位 |
| 12 位 | 两种都算:EAN-13 的数据位(补全)以及完整的 UPC-A(验证) |
| 13 位 | 两种都算:GTIN-14 的数据位(补全)以及完整的 EAN-13(验证) |
| 14 位 | 完整的 GTIN-14 → 验证校验位 |
如何手算 GTIN 校验位
校验位是 GS1 的模 10 校验和。从数据位的最右一位向左,交替乘以 3 和 1,再把乘积相加。校验位就是把这个和补足到下一个 10 的倍数所需的那个数。
以 EAN-13 数据位 400638133393 为例:加权和是 89,下一个 10 的倍数是 90,所以校验位是 90 − 89 = 1,完整条码是 4006381333931。在上面粘贴任意数据位,就能看到针对你的号码算出的这张表。
为什么 UPC 和 EAN 用的是同一条规则
所有长度的 GTIN 共用同一个校验和定义,锚定在号码的右端。这就是为什么 UPC-A 前面补一个零就成了它的 EAN-13 形式,而校验位不变 —— 也是为什么这个计算器能用一套算法处理所有格式。
本工具应用的全部规则(共 9 条)
INPUT-001 输入为空
去掉空白和格式字符之后什么都不剩。
修复: 请输入一个 GTIN:8、12、13 或 14 位数字。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-002 科学计数法损坏(Excel)
输入形如 “8.71E+12”。Excel 会把长数字转成科学计数法,并永久丢弃中间的数位——原始 GTIN 无法从这个值还原。
修复: 回到源文件。在 Excel 里先把该列设为「文本」格式(或在数值前加一个半角单引号),再重新导出。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-003 已移除格式字符
校验前去掉了空格、连字符、千分位分隔符,以及不可见字符(零宽空格、BOM、不换行空格)。从表格、PDF 或网页复制时很常见。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-004 已转换全角数字
全角数字(123,常见于中日韩输入法与文档)已转换为标准的半角数字。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-005 含非数字字符
清洗之后,输入里仍有不是数字的字符。GTIN 只由数字组成。
修复: 去掉字母和符号。如果数据里混进了内部 SKU,请单独取出条码所在的数字列。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-006 11 位——很可能被吃掉了前导零
以 0 开头的 UPC-A 被 Excel 当作数字处理时会丢掉前导零。11 位本身不是合法的 GTIN,但它极常见地是一个丢了首位 0 的 UPC-A。
修复: 补一个 0 后重新校验。要从根上避免,请在 Excel 里把条码列设为「文本」格式。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
INPUT-007 长度不合法
GTIN 必须恰好是 8 位(GTIN-8 / EAN-8)、12 位(GTIN-12 / UPC-A)、13 位(GTIN-13 / EAN-13)或 14 位(GTIN-14 / 箱码)。
修复: 检查是否被截断或与其他值连在了一起。7 位的值可能是丢了前导零的 GTIN-8。
INPUT-008 已移除末尾的 “.0”(表格软件的数值转换)
形如 “4006381333931.0” 的输入,说明这个值经过了某个把它当浮点数处理的工具(Excel、pandas)。“.0” 已被去掉、校验照常进行——但请检查该列其余的值有没有更严重的损坏(科学计数法、丢失的零)。
修复: 在源头把该列设为「文本」格式,从根上阻止数值转换。
来源: Yaktool data-hygiene rule — derived from real-world spreadsheet and copy-paste corruption patterns, not from a GS1 specification. Every case is covered by a regression test in our test suite.
CHECK-001 校验位不匹配
最后一位必须等于前面各位按 GS1 模 10 算法(自右起 3、1、3、1… 交替加权)算出的校验值。不匹配意味着录入错误、OCR 识别错误,或者这个码是编造的。
修复: 与实物包装上条码下方印的数字逐位核对。不要直接把校验位改成算出来的那个数,除非你确认其余各位都是对的。
校验位本身是算出来的而不是判定出来的,所以它出现在结果里,而不是作为一条 finding —— 这里列出 CHECK-001,是因为它正是被应用的那条算法。号段与占位码检查属于完整校验器;本工具不做那些声明。
关于这些规则。 每一条都有编号、严重级别和通俗解释。每个来源链接都已登记在案,并对线上页面实际复验过,而不是凭印象写上去的;本工具的来源最近一次复验于 23 August 2026. 规则如何编写、测试与保持更新 →