二维码知识
二维条码是在一维条码基础上扩展出来的条码形式,用黑白矩形图案表示二进制数据,设备扫描后可以读取其中包含的信息。
一维条码主要通过宽度记录数据,长度方向不记录数据;二维条码在横向和纵向两个方向上都记录数据,因此可以保存更多信息。二维条码还具备一维条码没有的定位点和容错机制:定位点帮助设备识别方向和位置;容错机制让二维码在没有完整识别、或图案有轻微污损时,仍有机会还原出原始信息。
二维码种类很多,不同机构开发出的二维码,在结构、编码方法和读取方法上会有所不同。
二维码的常见类型
堆叠式 / 行排式二维条码
堆叠式二维条码也叫行排式二维条码,可以理解为把多行一维条码叠在一起。常见类型包括 Code 16K、Code 49、PDF417 等。

这类码通常更适合特定行业和专用设备读取,在普通手机扫码场景中不如 QR 码常见。
矩阵式二维码
矩阵式二维码由黑白模块组成,信息分布在整个二维平面中。日常生活中最常见的是 QR 码,也就是通常所说的“二维码”。
相对于一维条码,QR 码的数据容量更大,可以混合保存数字、字符和中文文本;同时具备一定容错能力,部分图案损坏后仍可能被识别。QR 码空间利用率高,手机、平板、摄像头等设备对它的支持也更普遍。
常用二维码对比
| 对比项 | QR(日) | PDF417(美) | DM(美) | 汉信码(中) | 备注 |
|---|---|---|---|---|---|
| 发明时间 | 1994 年 | 1992 年 | 1989 年 | 2005 年 | |
| 是否中国国家标准 | 是 | 是 | 否 | 是 | |
| 是否国际标准 | 是 | 是 | 是 | 是 | |
| 最小面积 | 21×21 | 90×9 | 10×10 | 有 84 个版本供自主选择,最小码约指甲大小 | 单位为 mm×mm |
| 最大面积 | 177×177 | 853×270 | 144×144 | — | 单位为 mm×mm |
| 信息存储量 | 大 | 最小 | 小 | 大 | |
| 字节 / 平方英寸 | 2953(7% 纠错信息) | 1106(0.2% 纠错信息) | 1556(14% 纠错信息) | 4350 | |
| 数字 | 4296 | 2710 | 3116 | 7829 | |
| 字符 | 7089 | 1850 | 235 | 4350 | |
| 汉字 | 1817 | — | — | 2174 | |
| 二进制 | 2953 | 1556 | — | 3262 | |
| 纠错分级 | 4 级 | 9 级 | 非离散分级 | 4 级 | 纠错能力越强,可以存储的有效信息越少 |
| 最高纠错信息 | 30% | 46.20% | 25% | 30% | |
| 最低纠错信息 | 7% | 0.20% | 14% | 8% | |
| 表示中文 | 优 | 差 | 一般 | 优 | |
| 解码速度 | 快 | 慢 | 一般 | 快 | |
| 抗畸变、污损能力 | 较弱 | 一般 | 超强 | 强 | |
| 识别方向性 | 全方向性 | 单方向 | 单方向 | 全方向性 | |
| 识别设备 | 支持手机、PAD、摄像头 | 限专用设备 | 支持手机、PAD、摄像头 | 限专用设备 | 目前大部分手机二维码软件主要支持 QR 码 |
活码的原理
活码可以理解为二维码的一种应用形态。它通过短网址指向保存在云端的信息:扫码时,手机先访问短网址,再打开对应的云端内容页。制作者在后台修改云端内容时,二维码图案不变,扫码者看到的内容会更新。
和直接把文字或网址写进二维码的静态码相比,活码的图案通常更简洁,也更适合印刷和扫描。它让二维码的印刷管理更方便:可以先印刷二维码图案,后设置码内容;也可以在二维码已经贴出、印出或转发后,继续修改后台内容。
活码的核心特点包括:
- 图案不变,内容可改:印刷后无需换码,后台可随时更新内容。
- 支持多种内容:可展示图文、音视频、文件、链接和表单等。
- 可统计扫码数据:可查看扫码次数、时间、地点和设备等信息。
- 需要联网访问:扫码枪通常只能读取活码中的短网址。
从理论上说,活码背后的云端内容不再受二维码图案容量直接限制,文本、图片、文件等内容都可以放在云端页面中。草料也没有对文本字数做硬性限制。但实际使用时,仍会受到网络带宽、服务器性能、手机端加载能力等影响。如果输入过多文字、上传过大的图片或文件,可能影响生成和扫码打开速度,甚至导致手机端显示不完整。
因此,活码不是内容越多越好。正式投放前,建议先用手机扫码测试页面打开速度和展示效果,确认扫码者能正常查看。
这项技术原理简单,但很实用。现在很多软件和应用都可以创建这类二维码,草料二维码并不是这项技术的发明者。不过,不少企业和个人真要稳定用好它,仍然有门槛:如果自己开发一套系统,需要处理页面编辑、内容存储、扫码访问、数据统计、后台管理和服务器运维,成本和时间不是所有企业都能接受。
草料二维码为活码提供云服务,让更多人只需注册登录,就能使用这项能力。你不需要找人设计网页、编写代码,也可以通过二维码内容编辑器创建和修改自己的二维码内容;管理后台可以集中管理已创建的二维码,查看投放后的扫码数据或收集到的反馈信息。网页内容存放在云端,也能减少企业自建基础设施和开发维护成本。
用相同内容生成的二维码为什么图案不同
二维码是用特定几何图形按一定规律在平面上分布,从而记录数据符号信息。在编码时,二维码会利用计算机内部“0”和“1”的比特流概念,用黑白模块表示文字、数字等信息。扫码设备再通过图像输入或光电扫描,识别并还原其中的信息。
每种二维码码制都有自己的字符集、字符宽度和校验功能。同时,二维码还具备自动识别不同行信息、处理图形旋转变化等能力。
同样的内容,不做任何修改,反复生成出来的二维码图案也可能不同。这和编码方式、版本、纠错级别、掩膜规则、平台处理方式等因素有关。只要扫码后读出的内容一致,图案不同通常不影响正常使用。
可以简单理解为:同一句话从左到右写,或从上到下写,表达的仍是同一个意思。二维码也是一样,图案可以不同,但只要编码结果能被正确识别,扫码得到的内容就是一致的。
什么是容错率
容错率也叫纠错能力,是指二维码局部污损、遮挡或识别不完整时,仍能通过纠错信息还原原始内容的能力。
常见 QR 码有 4 个纠错级别:
| 纠错级别 | 大致可恢复比例 |
|---|---|
| L 级 | 约 7% |
| M 级 | 约 15% |
| Q 级 | 约 25% |
| H 级 | 约 30% |
常见 QR 码使用里德-所罗门码(RS)做纠错。可以简单理解为:二维码在保存原始内容之外,还额外保存了一部分纠错信息。当图案中有一些模块读取错误或缺失时,系统可以利用这些纠错信息推算并还原原始内容。
纠错级别越高,二维码抗污损能力越强,但需要占用更多空间来保存纠错信息,可用于保存实际内容的容量会相应减少,二维码图案也可能更复杂。
需要注意的是,容错率不是“任意位置都可以遮挡这么多”。二维码三个角上的定位点会直接影响识别,如果遮挡到这些关键区域,即使面积不大,也可能无法扫码。中间的数据区域通常更能容忍轻微污损或遮挡。
调整纠错级别后,二维码需要重新计算图案分布,所以同一内容在不同纠错级别下生成的二维码图案可能不同。
常见问题
什么叫静态码
静态码是生成后内容固定不变的二维码。它通常由一段网址、文本、编号或其他数据直接生成。
静态码的特点是:
- 生码后内容不能修改;
- 删除后台记录后,已经导出的二维码图案仍可继续识别;
- 不支持图片、文件、音视频等网页内容;
- 不支持扫码统计;
- 无网络环境下也能识别出二维码中的原始内容;
- 扫描枪可以直接识别二维码里写入的内容。
如果你需要让扫描枪直接读出编号、文本或其他原始内容,建议使用静态码。
相关说明:什么叫静态码、活码和静态码有什么区别
什么叫活码
活码是生成后内容可修改、二维码图案保持不变的二维码应用方式。
草料活码的二维码图案中保存的是一段指向云端内容的短网址。扫码时,手机访问这段短网址,再打开你在后台配置好的内容页面。你修改后台内容时,二维码图案不变,扫码者看到的内容会更新。
活码的特点是:
- 内容可修改,二维码图案不变;
- 支持扫码次数、时间、地区等数据统计;
- 支持图片、文件、音视频、表单等更丰富的网页内容;
- 可配合后台管理能力,用于产品展示、表单收集、设备巡检、资产管理等场景;
- 扫码查看内容需要联网。
相关说明:什么叫活码、快速了解二维码和活码
如何分辨静态码和活码
可以先用解码器查看二维码里写入的原始内容。
如果解码结果是文本、编号或目标网址本身,通常是静态码。
如果解码结果是草料活码短网址,例如 qr61xx、qr71xx、h.qr61xx 等,扫码后再打开云端内容页,通常是活码。
只看二维码图案疏密不能准确判断。内容很短的静态码也可能很简洁,内容较长的网址静态码也可能很密。
相关说明:如何分辨静态码和活码
为什么扫码枪扫描活码时会显示网址
扫码枪读取的是二维码图案里实际写入的内容。
如果是静态码,二维码图案里写入的就是文本、编号或目标网址,扫码枪可以直接读出这些内容。
如果是活码,二维码图案里写入的是一段指向云端内容的短网址,所以扫码枪通常会显示这段网址,而不是云端页面里的图文、文件或表单内容。
如果你需要用扫码枪直接识别内容,建议制作静态码;如果你需要扫码打开可更新的图文页面、文件或表单,建议使用活码。
相关说明:活码和静态码有什么区别