会被编成10,12,14bits,编成多长还要看二维码的尺寸。Alpha
umericmode:字符编码,包括09,大写的A到Z(没有小写),以及符号包括空格。这些字符会映射成一个字符索引表。如下所示:(其中的SP是空格,Char是字符,Value是其索引值)编码的过程是把字符两两分组,然后转成下表的45进制,然后转成11bits的二进制,如果最后有一个落单的,那就转成6bits的二进制。而编码模式和字符的个数需要根据不同的Versio
尺寸编成911或13个二进制(如下表中Table3)
Bytemode:字节编码,可以是0255的ISO88591字符。有些二维码的扫描器可以自动检测是否是UTF8的编码。
Ka
jimode:日文编码,也是双字节编码。同样,也可以用于中文编码。Exte
dedCha
elI
terpretatio
ECImode:主要用于特殊的字符集。并不是所有的扫描器都支持这种编码。StructuredAppe
dmode:用于混合编码,也就是说,这个二维码中包含了多种编码格式。FNC1mode:这种编码方式主要是给一些特殊的工业或行业用的。比如GS1条形码之类的。这里我们主要介绍最常用的数字编码和字符编码。下面两张表中,Table2是各个编码格式的“编号”(注:中文是1101),编号要写在FormatI
formatio
中。Table3表示了不同版本(尺寸)的二维码,对于数字、字符、字节和Ka
ji模式下,对于单个编码的2进制的位数。(编码规范表可参见二维码规格说明书)
f举例说明:
示例一:数字编码
例如,在Versio
1的尺寸下,纠错级别为H的情况下,编码:01234567的编码
方式如下:
1把上述数字分成三组01234567
2把他们转成二进制012转成0000001100;345转成010;67转成
1000011。
3把这三个二进制串起来00000011000101000011
4把数字的个数转成二进制versio
1H是10bits8个数字的二进制是
0000001000
5把数字编码的标志0001和第4步的编码加到前面00010000001000
00000011000101000011
示例二:字符编码
同样,在Versio
1的尺寸下,纠错级别为H的情况下,编码AC42的编码方式如
下:
1从字符索引表中找到AC42这五个字条的索引10124142
2两两分组10124142
3把每一组转成11bits的二进制
1012104512等于462转成00111001110
41441454等于1849转成11100111001
2
等于2转成000010
4把这些二进制连接起来:0011100111011100111001000010;
f5把字符的个数转成二进制Versio
1H为9bits5个字符,5转成000000101;6在头上加上编码标识0010和第5步的个数编码00100000001010011100111011100111001000010;
五r