Skip to content

二维码基本原理

组成

定位码

定位码是二维码的三个大的“L”形图案,分别位于二维码的左上角、左下角和右上角。它们的作用是帮助扫描设备快速识别二维码的边界和方向。定位码的黑白对比度明显,便于扫描设备快速定位。

它们有助于扫描器首先识别 QR 码。

隔离码

定位图案周围的空行,读取内容时一定要跳过它们。

对齐码

对齐码是二维码中用于校正二维码变形的图案。当二维码被打印在不平整的表面上或被扫描设备以一定角度扫描时,可能会出现变形。对齐码通过提供额外的参考点,帮助扫描设备校正二维码的形状,从而提高读取的准确性。

计时码

两个始终交替排列的黑白模块--这是帮助扫描器正确读取二维码的另一种方法。

格式信息

这决定了掩码图案和纠错级别。有一个垂直版本:

还有一条水平版本。请注意,定时码隔断了两条线!

其它区域

还有一个区域没有在这里显示:静区是二维码周围的白色边框。它可以帮助扫描仪识别 QR 码的开始和结束位置。

读取顺序

内容从右下角开始。您向上走,在两列之间走之字形,然后在下一列向左走之字形。始终跳过所有特殊区域!

字节

前四位是编码模式。对于 ASCII 编码模式,接下来的八位指定内容长度。之后,每八位就是一个内容字节。

同样,我们也要应用掩码:

长度解码

从二维码的右下角算起的 5 - 12位, 即长度信息:

这些是比特位: 00001100
这些比特位以十进制表示: 12

内容解码

最后,我们就可以开始解码二维码的内容了!

这些是比特位: 00001100
这些位以十六进制表示: 0x48
这就是相应的 ASCII 字符: H

ASCII 字符表

十六进制字符十六进制字符十六进制字符
0x20(space)0x40@0x60`
0x21!0x41A0x61a
0x22"0x42B0x62b
0x23#0x43C0x63c
0x24$0x44D0x64d
0x25%0x45E0x65e
0x26&0x46F0x66f
0x27'0x47G0x67g
0x28(0x48H0x68h
0x29)0x49I0x69i
0x2A*0x4AJ0x6Aj
0x2B+0x4BK0x6Bk
0x2C,0x4CL0x6Cl
0x2D-0x4DM0x6Dm
0x2E.0x4EN0x6En
0x2F/0x4FO0x6Fo
0x3000x50P0x70p
0x3110x51Q0x71q
0x3220x52R0x72r
0x3330x53S0x73s
0x3440x54T0x74t
0x3550x55U0x75u
0x3660x56V0x76v
0x3770x57W0x77w
0x3880x58X0x78x
0x3990x59Y0x79y
0x3A:0x5AZ0x7Az
0x3B;0x5B[0x7B{
0x3C<0x5C\0x7C``
0x3D=0x5D]0x7D}
0x3E>0x5E^0x7E~
0x3F?0x5F_

粤ICP备20009776号