image.png
常见的二维码为QR Code最早于1994年被日本公司Denso Wave的腾弘原发明并且由原来的条形码改造而来,相比条形码数据能力存储能力都大大提升。
image.png
注意:上图图片来源网络,仅供参考
二维码一共有40个尺寸,官方叫版本Version。
公式是:(V-1)4 + 21(V是版本号) 最高Version 40,(40-1)4+21 = 177,所以最高是177 x 177 的正方形。
image.png
位置探测图形是定位图案,用于标记二维码的矩形大小。
这三个定位图案有白边叫位置探测图形分隔符。
之所以三个而不是四个意思就是三个就可以标识一个矩形了。
定位图形也是用于定位的。 原因是二维码有40种尺寸,尺寸过大了后需要有根标准线,不然扫描的时候可能会扫歪了。
只有Version 2以上(包括Version2)的二维码需要这个东东,同样是为了定位用的。
存在于所有的尺寸中,用于存放一些格式化数据的。
在 >= Version 7以上,需要预留两块3 x 6的区域存放一些版本信息。
除了上述的那些地方,剩下的地方存放 Data Code 数据码 和 Error Correction Code 纠错码。
QR码支持如下的编码:
范围:0-9
如果需要编码的数字的个数不是3的倍数,那么,最后剩下的1或2位数会被转成4或7bits,则其它的每3位数字会被编成 10,12,14bits,编成多长还要看二维码的尺寸.
范围: 0-9,大写的A到Z(没有小写),以及符号$ % * + – . / : 包括空格。
编码的过程是把字符两两分组,然后转成下表的45进制,然后转成11bits的二进制,如果最后有一个落单的,那就转成6bits的二进制。
image.png
(其中的SP是空格,Char是字符,Value是其索引值)
范围:0-255的ISO-8859-1字符
范围:日语\中文 日文和汉字的编码会减去一个值。如:在0X8140 to 0X9FFC中的字符会减去8140,在0XE040到0XEBBF中的字符要减去0XC140,然后把结果前两个16进制位拿出来乘以0XC0,然后再加上后两个16进制位,最后转成13bit的编码。
image.png
image.png