QR 码版本 1-40 到底差在哪里:尺寸与容量的完整指南
版本指的就是「格子的数量」
二维码的「版本」,是表示构成这个码的格子(模块)数量的规格。版本 1 是 21×21 个模块,版本 2 是 25×25 个模块,之后版本每上升 1 级就增加 4 个模块,最大的版本 40 达到 177×177 个模块(31,329 格)。
模块数量越多,能存放的数据量就越大,但同时要么这个码的物理尺寸变大,要么每一个模块变小。也就是说,版本越高就越有「装得下很多,但变得难扫」这样一种取舍关系。
顺便说一句,版本和「型号」是两回事。现在通用的是 QR 码型号 2,它在型号 1 的基础上追加了校正图案,让高版本时的位置识别更稳定。日常见到的二维码基本都是型号 2 的版本 1-10 这一带。
各版本的容量——实用的参考值
实际上哪个版本能装多少数据,下面给出纠错级别 M(可恢复 15%)时的参考值。版本 1(21×21)纯数字最多 34 位,字母数字混合 20 个字符。不过含小写字母的普通链接会进入字节模式(版本 1 在 M 级下最多 14 字节),因此即便是 https://example.com 这样的短链接,实际也要从版本 2 起步。
版本 5(37×37)是数字 202 位、字母数字 122 个字符,带 UTM 参数的长链接也能轻松放进去。版本 10(57×57)是数字 513 位、字母数字 311 个字符,能容纳 vCard(电子名片)的基本信息。版本 40(177×177)是数字 5,596 位、字母数字 3,391 个字符。不过,实用中几乎不会有需要动用版本 40 的场合,因为模块会变得极小,必须配合高分辨率的印刷和很近距离的扫描才行。
版本是自动决定的——什么时候需要手动指定
大多数二维码生成工具会根据输入数据的多少自动选择版本。输入一条短链接就会生成版本 2-3 左右的小尺寸码,输入一大段文字版本就自动往上走。通常交给这个自动选择就没有问题。
应该手动指定版本的场合,是印刷尺寸有限制的时候。要印在名片上,一边的极限是 15-20 mm,所以必须把版本压在 5 以下。反过来说,印在大型招牌和海报上时,即便版本高,每个模块也能印得足够大,限制就宽松得多。
纠错级别与版本的关系
即便数据量相同,把纠错级别提上去,版本也会跟着上去。比如纠错级别 L(可恢复 7%)时版本 3 就能装下的数据,到了级别 H(可恢复 30%)就需要版本 5 了。因为要追加纠错数据,整体的模块数量就增加了。
实用上的推荐是:一般用途用级别 M(15%),户外或者容易变脏的环境用级别 Q(25%),要嵌入标志的设计型二维码用级别 H(30%)。级别 L 只在想把容量用到最大时才使用,需要耐久性的场合请避开它。
容量和易扫描性是互相交换的
版本提上去,能装的数据就变多,但如果印成同样的大小,每一格的尺寸就会相应地变小。格子越小,对摄像头分辨率不足、手抖、光线偏暗、油墨洇开、斜着扫这些条件的恶化就越没有抵抗力。即便被污渍或磨损覆盖的面积一样,丢失的格子数量也会变多,纠错还原不回来的情形就会更早出现。
所以版本与其说是自己挑的数值,不如说是由放进去的数据量决定出来的结果,这样理解更接近实际。想提高易扫描性的时候,没法只把版本降下来;要降,就只能重新审视放进去的数据本身。思路的顺序是:在必要数据装得下的范围内,尽量压到更低的版本。
判断的顺序是:先定下媒介上能用的边长,再设想从多远的距离扫描,然后算出在这个条件下每一格还能保持足够大小的版本上限。如果想放的数据超过了这个上限,就只有两条路:把码做大,或者把数据删减。容量和易扫描性是互相交换的关系,所以先决定好让哪一边让步,设计的时候就不会来回摇摆。
记住版本切换的分界点
各版本的容量不是连续的,而是一段一段的台阶。纠错级别 M、字节模式的情况下,版本 4 的上限是 62 字节,版本 5 的上限是 84 字节。一条 62 字节的链接再加一个字符变成 63 字节的瞬间,码就从 33×33 切换到 37×37。同样,版本 7 的上限是 122 字节、版本 8 是 152 字节,跨过分界点就从 45×45 变成 49×49。
正因为有这些台阶,实务上不会去瞄准上限的整数值。如果贴着台阶的上沿来设计,之后往链接里多加一个字符版本就会上去,印成同样大小时格子的粗细也就跟着变了。收在低一级台阶的上限之内,字符数有些增减也不会改变图案的粗细。
容易被忽略的是含有汉字或者假名的链接。在地址栏里看着是一个字,进到二维码里的却是百分号编码之后的形式,一个汉字要占 9 个字节。只加上 4 个汉字的路径就多出 36 字节,本来只用字母数字时 60 字节出头能收在版本 4 里的链接,会一下子跳上两三个版本。
如果印出来之后还有可能改换目标地址,把嵌进去的字符串长度固定下来更稳妥。中间加一层转发,印在纸上的链接本身不用变,只换目标地址,版本和图案就都不会动。把目标链接直接嵌进去的话,每次更换字符数都会变,遇到无法重印的媒介就应付不了了。
按用途推荐的版本
仅放链接(62 字节以内):版本 3-4。名片、宣传单、海报等绝大多数用途都落在这里。纠错级别 M 时,42 字节以内是版本 3,62 字节以内是版本 4。
Wi-Fi 连接信息:版本 5-7。会随 SSID 和密码的长度浮动。版本 5 能装 84 字节,版本 7 能装 122 字节,所以要用长密码的话,就得把版本 7 也算进来。
vCard(电子名片):从版本 10 前后起。光是基本信息就有 200 字节左右,把地址和职务也放进去,就会涨到版本 17(504 字节)附近。名片这样小的印刷面上,缩短成联系人页面的链接再存放要实用得多。
长篇的汉字文本:字节模式下一个字占 3 个字节,150 个字就是 450 字节,需要版本 16。超过版本 20 的码,格子会细到印刷和扫描的条件都变得苛刻,除了特殊的工业用途以外都不推荐。