1、11 范围本标准规定了 QR 码符号的要求。它规定了 QR 码模式 2 符号的特征,数据字符编码,符号格式,尺寸特征,错误纠正纠错规则,参考译码算法,符号质量要求,以及可由用户选择的应用参数,在附录中给出了 QR 码模式 1 符号不同于模式 2 的特性。2 一致性QR 码符号(及设计用于生成或识读 QR 码符号的设备)如果满足 QR 码模式 2 或模式 1规定的要求,应认作符合本规范。然而要注意,模式 2 是推荐用于新的和开放式系统应用的符号方式。3 引用标准下列标准文件所包含的条文,通过在本标准中引用而构成为本标准的条文。对于注明日期的引用标准,以后进行的补充和修改并不适用,然而,鼓励基于国
2、际标准的协议各方对应用以下标准文件最新版本的可能性进行调研,无注明日期的引用标准适用于提交应用的最近的版本。ISO 和 IEC 的成员仍然是当前有效标准的注册机构。ISO/IEC 15424 信息技术 自动识别和数据采集技术 数据载体/符号标识ISO/IEC 15416 信息技术 自动识别和数据采集技术 条码印刷质量测试规范 线性条码EN 1556 条码术语JIS X0201 信息交换用 JIS 8 位字符集JIS X02081997 信息交换用日语图形字符集ANSI X 3.4 编码字符集信息交换用 7 位美国国家标准码(7 位 ASCII)AIM 国际技术规范 扩展解释:第一部分:识别方案
3、与协议(称作“AIM ECI 规范” )4 术语和定义EN1556 中的术语和下列各项适用于本标准:4.1 校正图形(Alignment Pattern)用于确立矩阵符号位置的一个固定的参照图形,解码译码软件可以通过它在图象有中等程度损坏的情况下,再同步图像模块的坐标映象。4.2 字符计数指示符(Character Count Indicator)定义某一模式下的数据串长度的位序列。4.3 ECI 指示符(ECI designator)6 位数字,用于标识具体的 ECI 任务。4.4 编码区域(encoding region)在符号中没有被功能图形占用,可以对数据或错误纠正纠错码字进行编码的区
4、域。4.5 扩充解释(Extended Channel Interpretation (ECI))在某些码制中,对输出数据流允许有与缺省字符集有不同的解释的协议。24.6 扩展图形(Extension Pattern)模式 1 中,不表示数据的一种功能图形。4.7 格式信息(Format Information)一种功能图形,它包含符号使用的错误纠正纠错等级以及使用的掩模图形的信息,以便对编码区域的剩余部分进行译码。4.8 功能图形(function pattern)包含帮助译码的符号定位或者它的特征识别信息的符号附加成分, 。符号中用于符号定位与特征识别的特定图形。4.9 掩模图形参考(Ma
5、sk Pattern Reference)用于符号中的三位三位掩模图形标识符。4.10 掩模(masking)在城内编码区域内,用掩模图形对在城内编码区的位图进行 XOR 操作,其目的是使符号中深色与浅色模块数的比例均衡,并且减少影响图像快速处理的图形出现。4.11 模式(mode)将特定的字符集表示成位串的方法。4.12 模式指示符(Mode Indicator)4 位标识符,指示随后的数据序列所用的编码模式。4.13 填充位(Padding Bit)值为 0,不表示数据,用于填充数据位流最后一个码字中终止符后面的空位。4.14 位置探测图形(Position Detection Patte
6、rn)组成寻象图形的三个相同的图形之一。4.15 剩余位(Remainder Bit)值为 0,不表示数据,当编码区域不能正好被 8 位的码字填满时,用于填充最后一个码字后的空位。4.16 剩余码字(Remainder Codeword)一种填充码字,当所有的数据码字和错误纠正纠错码字不能正好填满符号的容量时,用于填充一种填充码字所空码字位置,它们紧跟在最后一个错误纠正纠错码字之后。4.17 段(segment)以同一 ECI 或编码模式编码的数据序列。4.18 分隔符(Separator)全部由浅色模块组成的功能图形,宽度为一个模块,用于将位置探测图形与符号的其余部分分开。4.19 终止符(
7、Terminator)用于结束表示数据位流的位图 0000。4.20 定位图形(Timing Pattern)深色与浅色模块交错的图形,便于决定符号中模块的坐标。34.21 版本(Version)用于表示符号规格的系列。某一特定版本是根据它在所允许的规格系列中的位置来确定的。QR 码所允许规格系列为 2121 模块(版本 1)177177 模块(版本 40) 。它也可同时指示符号所应用的纠错等级。4.22 版本信息(Version Information)在模式 2 符号中,包含符号版本的信息及该数据错误纠正纠错位的功能图形。5 运算符(缩略符)在公式和方程中使用的数学符号,是在它们所在的公式
8、或方程之后定义的。本规范中使用的数学运算符定义如下:div 整除运算符mod 整除后的余数XOR 逻辑异或功能,当两个输入不等时,它的输出为 1。其符号表示为 。6 有关 QR 码的约定6.1 模块位置为便于参照参考,用在符号中的行、列坐标表示模块的位置,格式为(i,j) 。其中,i 表示模块所在行数(从上向下计算) ,j 表示列数(从左向右计算) ,记数从 0 开始,因此模块(0,0)是符号中左上角的模块。6.2 字节表示字节的内容用 16 进制表示。6.3 版本参考符号版本用版本 V-E 的方式表示,其中 V 标识表示版本号(1-40) ,E 表示错误纠正纠错等级(L,M,Q,H) 。7
9、符号描述本标准的条款规定了 QR 码模式 2 符号的技术规范,除非在附录 M 中作特别说明说明,否则也适用于模式 1 符号。7.1 基本特征QR 码为矩阵式二维码,具有如下特征:a) 编码字符集1) 数字型数据(数字 09) ;2) 字母数字型数据(数字 09;大写字母 AZ;9 个其他字符:space ,$, %, *, +, -, ., /, :) ;3) 8 位字节型数据(与 JIS X 020一致的 JIS8 位字符集(拉丁和假名) ) ;4) 日语日本汉字字符(与 JIS X 0208 附录 1:变化转换代码表示法一致的变化转化 JIS 字符集。注意:在 QR 码中的日语日本汉字字符
10、的值为:8140 HEX -9FFCHEX和 E040HEX EBBFHEX,可以压缩为 13 位。 )5) 中国汉字字符(与 GB18030-2000 附录 A 双字节字符表表示的字符集)b) 数据表示法4深色模块表示二进制 1,浅色模块表示二进制 0。c) 符号规格(不包括空白区)2121 模块到 177177 模块(版本 1 到 40,每版本符号每边增加 4 个模块) 。d) 每个符号的数据字符数(最大规格的符号版本 40-L)1) 数字数据 7089 个字符2) 字母数字数据 4296 个字符3) 8 位字节数据 2953 个字符4) 日本汉字数据 1817 个字符5) 中国汉字数据
11、21008 个字符e) 错误纠正纠错的选择4 种错误纠正纠错等级,可恢复的码字比例为:L 7%M 15%Q 25%H 30%f) 符号类型:矩阵g) 独立定位:是图 1 为 QR 码符号版本 1 的示例。图 1 QR 码符号的示例7.2 其他特征综述以下 QR 码特征有些是固有的,有些是可选的:a) 结构链接(可选)允许把数据文件用最多 16 个 QR 码符号在逻辑上连续地表示。它们可以以任意的顺序扫描,而原始数据能正确地重新连接起来。b) 掩模(固有)可以使符号中深色与浅色模块的比例接近 1:1,使因相邻模块的排列造成译码困难的可能性降为最小。c) 扩充解释(可选)这种方式使符号可以表示缺省
12、字符集以外的数据(如阿拉伯字符、古斯拉夫字符、希5腊字母等) ,以及其他解释(如用一定的压缩方式表示的数据)或者对行业特点的需要进行编码。7.3 符号结构每个 QR 码符号由名义上的正方形模块构成,组成一个正方形阵列,它由编码区域和包括寻象图形、分隔符、定位图形和校正图形在内的功能图形组成。功能图形不能用于数据编码。符号的四周由空白区包围。图 2 为 QR 码版本 7 符号的结构图。图 2 QR 码符号的结构7.3.1 符号版本和规格QR 码符号共有 40 种规格,分别为版本 1、版本 2版本 40。版本 1 的规格为 21 模块21 模块,版本 2 为 25 模块25 模块,以此类推,每一版
13、本符号比前一版本每边增加4 个模块,直到版本 40,规格为 177 模块177 模块。图 3 至 8 为版本1,2,6,7,14,21 和 40 的符号结构。空 白 区 位 置 探 测 图 形 定 位 图 形 位 置 探 测 图 形 分 隔 符 校 正 图 形 功 能 图 形 数 据 和 纠 错 码 字 符 号 格 式 信 息 版 本 信 息 编 码 区 格 式 7版 本 1 版 本 2 25 模 块 25模 块 9 9 数 据 和 纠 错 码 字 格 式 信 息 及 其 纠 错 码 版 本 信 息 及 其 纠 错 码 剩 余 位 5 21 模 块 5 21模 块 图 3 版本 1 和版本 2
14、 的符号8版 本 6 41模 块 41 模 块 25 25 图 4 版本 6 的符号 版 本 7 45 模 块 45 模 块 29 29 图 5 版本 7 的符号10版 本 14 73 模 块 73 模 块 57 57 图 6 版本 14 的符号 版 本 21 10 模 块 10 模 块 85 85 图 7 版本 21 的符号11版 本 40 16 16 17 模 块 17 模 块 图 8 版本 40 的符号7.3.2 寻象图形寻象图形包括三个相同的位置探测图形,分别位于符号的左上角、右上角和左下角,如图 2 所示。每个位置探测图形可以看作是向由 3 个重叠的同心的正方形组成,它们分别为 7
15、7 个深色色模块、5 5 个浅模块和 3 3 个深色模块。如图 9 所示,位置探测图形的模块宽度比为 1:1:3:1:1。符号中其他地方遇到类似图形的可能性极小,因此可以在视场中迅速地识别可能的 QR 码符号。识别组成的寻象图形的三个位置探测图形,可以明确地确定视场中符号的位置和方向。 A: 3模 块 B: 5模 块 C: 7模 块 1: : 3 : 1 : A B C 图 9 位置探测图形的结构127.3.3 分隔符在每个位置探测图形和编码区域之间有宽度为 1 个模块的分隔符,如图 2 所示,它全部由浅色模块组成。7.3.4 定位图形水平和垂直定位图形分别为一个模块宽的一行和一列,由深色浅色
16、模块交替组成,其开始和结尾都是深色模块。水平定位图形位于上部的两个位置探测图形之间,符号的第 6行。垂直定位图形位于左侧的两个位置探测图形之间,符号的第 6 列。它们的作用是确定符号的密度和版本,提供决定模块坐标的基准位置。7.3.5 校正图形每个校正图形可看作是 3 个重叠的同心正方形,由 55 个的深色模块,33 个的浅色模块以及位于中心的一个深色模块组成。校正图形的数量视符号的版本号而定,在模式2 的符号中,版本 2 以上(含版本 2)的符号均有校正图形,详见附录 E。7.3.6 编码区域编码区域包括表示数据码字, 、错误纠正纠错码字, 、版本信息和格式信息的符号字符。符号字符的详细内容
17、见 8.7.1,格式信息的详细内容见 8.9,版本信息的详细内容见8.10。7.3.7 空白区空白区为环绕在符号四周的 4 个模块宽的区域,其反射率应与浅色模块相同。8 要求符号表示方法8.1 编码方法综述第一步 数据分析分析所输入的数据流,确定要进行编码的字符的类型。QR 码支持扩充解释,可以对与缺省的字符集不同的数据进行编码。QR 码包括几种不同的模式(见 8.3) ,以便高效的地将不同的字符子集转换为符号字符。必要时可以进行模式之间的转换更高效地将数据转换,以便为二进制串。选择所需的错误检测和纠正等级。如果用户没有指定所采用的符号版本,则选择与数据相适应的最小的版本。表 1 为全部符号版
18、本及其容量。13表1 QR码各版本符号的数据容量版本每边的模块数(A)功能图形模块数 (B)格式及版本信息模块数 (C)除 C 以外的数据模块数 (C)(D=A2-B-C)数据容量码字 * (E) 剩余位1 21 202 31 208 26 02 25 235 31 359 44 73 29 243 31 567 70 74 33 251 31 807 100 75 37 259 31 1079 134 76 41 267 31 1383 172 77 45 390 67 1568 196 08 49 398 67 1936 242 09 53 406 67 2336 292 010 57 4
19、14 67 2768 346 011 61 422 67 3232 404 012 65 430 67 3728 466 013 69 438 67 4256 532 014 73 611 67 4651 581 315 77 619 67 5243 655 316 81 627 67 5867 733 317 85 635 67 6523 815 318 89 643 67 7211 901 319 93 651 67 7931 991 320 97 659 67 8683 1085 321 101 882 67 9252 1156 422 105 890 67 10068 1258 423
20、 109 898 67 10916 1364 424 113 906 67 11796 1474 425 117 914 67 12708 1588 426 121 922 67 13652 1706 427 125 930 67 14628 1828 428 129 1203 67 15371 1921 329 133 1211 67 16411 2051 330 137 1219 67 17483 2185 331 141 1227 67 18587 2323 332 145 1235 67 19723 2465 333 149 1243 67 20891 2611 334 153 125
21、1 67 22091 2761 335 157 1574 67 23008 2876 036 161 1582 67 24272 3034 037 165 1590 67 25568 3196 038 169 1598 67 26896 3362 039 173 1606 67 28256 3532 040 177 1614 67 29648 3706 0注 * 码字的长度为8位。14第二步 数据编码对于采用的模式按照 8.4.1 至 8.4.5 所定义的规则,将数据字符转换为位流。在当需要进行模式转换时,在新的模式段开始前加入模式指示符进行模式转换。在数据序列后面加入终止符。将产生的位流分为
22、每 8 位一个码字。必要时加入填充字符以填满按照版本要求的数据码字数。第三步 纠错编码按需要将码字序列分块(见表 1322) ,以便按块生成相应的错误纠正纠错码字,并将其加入到相应的数据码字序列的后面。第四步 构造最终信息按 8.6 节(第三步)的描述,在每一块中置入数据和纠错码字,必要时加剩余位。第五步 在矩阵中布置模块将寻象图形、分隔符、定位图形、校正图形与码字模块一起放入矩阵。第六步 掩模依次将掩模图形用于符号的编码区域。评价结果,并选择其中使深色浅色模块比率最优且使不希望出现的图形最少化的结果。第七步 格式和版本信息生成格式和版本信息(如果用到时) ,形成符号。8.2 数据分析分析输入
23、数据,确定其内容并且选择采用缺省的或者其它适当的 ECI 以及适当的模式,对每个序列编码,其详细描述见 8.4。从数字模式到日本汉字模式,每种模式的字符所需的位数依次增加。在符号中可以通过模式的转换使数据的位流长度最短,部分数据用一种模式编码可以比其它部分的编码效率更高。例如:数字序列后跟随字母数字序列。理论上说,用每个数据字符所需的位数最少的模式进行编码是最高效的,但每次模式转换时都需要有相关模式指示符和字符数量指示符等形式的附加开销,因此,对于较少的字符数,模式的转换并不总是能使位流总量最少,有关这方面的说明见附录 H。同时,由于各个版本的容量的增加是步进的,所以不一定在任何情况下都要达到
24、最高的转换效率。8.3 模式下列模式是根据缺省的 ECI 有关的字符值与任务定义的。如果采用其他的 ECI,那么选择最佳的压缩模式就应使用字节值而不是具体的字符任务。例如:如果数据字节序列的值在 30HEX 至 39HEX之间,应使用数字模式。这种情况下,用字节值相应的缺省的数字或者字母数字进行压缩。8.3.1 扩充解释(ECI)模式扩充解释(ECI)协议允许输出的数据流有与缺省的字符集不同的解释。ECI 协议在一些码制中有一致的定义。QR 码支持 4 大类解释。a) 国际字符集(或码页)b) 用于诸如加密或压缩等一般目的的解释c) 闭环系统中用户自定义的解释d) 无缓冲模式中用于结构链接的控
25、制信息15ECI 协议在 AIM ECI 规范中有全面的定义,协议提供了一个对印刷前和译码后的字节值进行详细解释的方法。QR 码的缺省解释是 ECI 000020,表示 JIS8 和转换 JIS 字符集。8.3.2 数字模式数字模式对十进制数字 09(ASCII 值 30HEX 至 39HEX)编码,通常的密度为每 10 位表示 3 个字符。8.3.3 字母数字模式字母数字模式对 45 个字符的字符集进行编码,即:10 个数字 09(ASCII 值 30HEX 至 39HEX) ,26 个字母字符 AZ(ASCII 值 41HEX 至 5AHEX)以及 9 个符号SP、$、%、*、+、-、.、
26、/、:(ASCII 值分别为20HEX,24 HEX,25 HEX,2A HEX,2B HEX,2D HEX,2E HEX,2F HEX,3A HEX) 。通常情况下,两个输入字符用 11 位表示。8.3.4 8 位字节模式8 位字节模式用于表示与 JIS X 0201 一致的 8 位拉丁/假名字符集(字符值为 00HEX 至 FFHEX) ,其编码密度为每个字符 8 位。8.3.5 日本汉字模式日本汉字模式用于表示与基于 JIS X 0208 的转换 JIS 系统一致的日本汉字字符。转换JIS 值由 JIS X 0208 转换而来。具体内容见 JIS X 0208 附录 1 转换代码表示法。
27、每个双字节字符由 13 位二进制码字表示。8.3.6 中国汉字模式8.3.7 混合模式QR 码符号可以包含以 8.3.1 到 8.3.5 中描述的多种模式所表示的混合数据序列。用混合模式表示已知数据的最高效方法的选择方法见附录 H。8.3.8 结构链接模式结构链接模式用于把一个数据文件分开表示为多个 QR 码符号的序列,要求所有的符号可以识读并且数据可以按正确的顺序重新建立。每个符号都要有一个结构链接头,以标识这个序列的长度及该符号在其中的位置,并且检验是否所有识读的符号属于同一个文件。结构链接模式的编码详见第 9 章。8.3.9 FNC1 模式FNC1 模式用于表示按 UCC/EAN 应用标
28、识标准或国际 AIM 协会已经同意的具体行业标准格式化的数据。8.4 数据编码输入的数据转变为一个位流,如果最开始的 ECI 不是缺省的 ECI,其前面要有 ECI 标头,后面为一个或多个不同模式的段,如果以缺省的 ECI 开始,位流的开头为第一个模式的指示符。ECI 标头(如果有)应包含如下内容:ECI 模式指示符(4 位)16ECI 指定符(8,16 或 24 位)位流的其余部分的第一段由以下内容组成,它们包含:模式指示符(4 位)字符计数指示符数据位流ECI 标头由 ECI 模式指示符的最高位开始,以 ECI 指定符的最低位结束。每个模式段以模式指示符的最高位开始,以数据位流的最低位结束
29、。由于段的长度已经由采用模式的规则以及数据字符数明确地确定,段与段之间没有特定的分隔。在 8.4.1 至 8.4.6 中定义了在给定的模式中对输入的数据序列编码的步骤。表 2 定义了每个模式的模式指示符。表 3 定义了采用不同模式和符号版本的字符计数指示符的长度。表2 模式指示符模式 指示符ECI 0111数字 0001字母数字 00108 位字节 0100日本汉字 1000中国汉字 1101结构链接 0011FNC1 0101 (第一位置)1001 (第二位置)终止符 (信息结尾) 0000表3 字符计数指示符的位数版本 数字模式字母数字模式8 位字节模式日本汉字模式中国汉字模式19 10
30、9 8 81026 12 11 16 102740 14 13 16 12整个符号的结束由 4 位终止符 0000 表示,当符号数据位流后所余的容量不足 4 位时,终止符将被截短。终止符本身不是模式指示符。8.4.1 扩充解释(ECI)模式本模式用于按可选的字节值解释(例如不同的字符集)对某类数据进行编码,可选的字节值解释应符合 AIM ECI 规范中对该类数据进行预处理的规则。模式用模式指示符 0111引入。不需要引入 QR 码缺省扩充解释(ECI 头 000020,对应于 JIS8/转换 JIS 字符集) ,尤其是在任何符号的开始。ECI 只能用于识读器可以传送符号标识的情况,不能传送符号
31、标识的识读器无法从包含 ECI 的符号中传输数据。输入的 ECI 数据需要编码系统作为一系列 8 位字节的值进行处理。ECI 序列中的数据可以一种或几种模式对其字节值进行最高效编码,而不必考虑其实际意义。例如:值为 30HEX 到 39HEX的数据序列可以当作一个数字 0-9 序列,用数字模式进17行编码(见 8.4.2) ,即使也许实际上它并不表示数字数据。字符计数指示符由字节的数量决定(在日本汉字模式中为双字节、中国汉字模式中为双字节) 。8.4.1.1 ECI 指定符每个扩充解释被分配一个 6 位的任务号,它为紧接在 QR 符号的 ECI 模式指示符后的 1个、2 个或 3 个码字。其编
32、码规则见表 4。ECI 模式指示符编码为 ASCII/JIS8 字符 5CHEX (或 ISO 646 IRV 中的反斜线,¥或 JIS8 中的日圆符号) ,其后跟随 6 位任务号。如果ASCII/JIS8 字符 5CHEX 本身是作为数据的内容,在应用 ECI 协议的符号中编码前,应在数据串中重复该字符。表4 ECI任务号的编码ECI 任务号 码字数 码字值000000 至 000127 1 0bbbbbbb000000 至 016383 2 10bbbbbb bbbbbbbb000000 至 999999 3 110bbbbb bbbbbbbb bbbbbbbbbb 是 ECI 任务号的二
33、进制值在解码译码时,第一个 ECI 指定符码字(ECI 模式中模式指示符后的码字)的二进制图形,确定 ECI 指定符序列的长度。第一个“0”前面的“1”的个数量表示 ECI 任务号的第一个码字后的附加码字的数量。第一个“0”后面的各位,是 ECI 任务号的二进制表示。较低的 ECI 任务号有多种编码方式,最短的方式为首选的。例如:假设编码的数据为希腊字母,字符集为 ISO 8859-7(ECI000009) ,符号版本为1-H。要编码的数据 A E: (字符值 A1 HEX, A2HEX, A3HEX, A4HEX, A5HEX)符号中的位序列:ECI 模式指示符 0111ECI 任务号(00
34、0009) 00001001模式指示符(8 位字节) 0100字符计数指示符(5) 00000101数据: 10100001 10100010 10100011 10100100 10100101最终的位串: 0111 00001001 0100 00000101 10100001 1010001010100011 10100100 10100101该数据译码后传送的例子见 15.2 节。8.4.1.2 多种 ECI请参阅 AIM ECI 规范中规定的 ECI 数据段中有关 ECI 指定符的作用的规则。例如,已经应用某一字符集 ECI 的数据也可用一个与初始的 ECI 共存的非字符集 ECI
35、加密或压缩,或者第二个 ECI 可以取消第一个 ECI 并开始一个新的 ECI 段。在数据中出现任何 ECI 指定符都要按 8.4.1.1 在 QR 码符号中编码并开始一个新的模式段。188.4.1.3 ECI 和结构链接 引入任何 ECI,必须遵从上述规则及 AIM 的 ECI 规范,直到编码数据的结束或者出现另一个 ECI(由模式指示符 0111 表示) 。如果 ECI 编码的数据以结构链接的模式延伸到两个或更多的符号,那么,在每一个继续使用该 ECI 模式的后续符号中,需提供一个由 ECI 模式提示符和 ECI 指定符组成的 ECI 标头,该标头紧跟在结构链接头之后。8.4.2 数字模式
36、将输入的数据每三位分为一组,将每组数据转换为 10 位二进制数。如果所输入的数据的位数不是 3 的整数倍,所余的 1 位或 2 位数字应分别转换为 4 位或 7 位二进制数。将二进制数据连接起来并在前面加上模式指示符和字符计数指示符。数字模式中字符计数指示符如表 3 中定义的有 10、12 或 14 位。输入的数据字符的数量转换为 10、12 或 14 位二进制数后,放置在模式指示符之后,二进制数据序列之前。例 1 (符号版本 1-H)输入的数据: 012345671) 分为 3 位一组: 012 345 672) 将每组转换为二进制: 0120000001100345010101100167
37、 10000113) 将二进制数连接为一个序列:0000001100 0101011001 10000114) 将字符计数指示符转换为二进制(版本 1-H 为 10 位):字符数为:800000010005) 加入模式指示符 0001 以及字符计数指示符的二进制数据:0001 0000001000 0000001100 0101011001 1000011例 2 (符号版本 1-H)输入的数据: 01234567890123451) 分为 3 位一组: 012 345 678 901 234 52) 将每组转换为二进制: 012000000110034501010110016781010100
38、110901111000010123400111010105 01013) 将二进制数连接为一个序列:0000001100 0101011001 1010100110 1110000101 0011101010 01014) 将字符计数指示符转换为二进制(版本 1-H 为 10 位):字符数为:1600000100005) 加入模式指示符 0001 以及字符计数指示符的二进制数据:0001 0000010000 0000001100 0101011001 1010100110 1110000101 0011101010 0101数字模式中位流的长度计算公式如下:19B = 4 + C + 10
39、(D DIV 3) + R其中:B=位流的位数C=字符计数指示符的位数(根据表 3)D=输入的数据字符数R=0 当(D MOD 3)=0R=4 当(D MOD 3)=1R=7 当(D MOD 3)=28.4.3 字母数字模式按照表 5,每个输入的字符赋于一个数值 V,它的值为 0 到 44。表5 字母数字模式的编码/译码表字符值 字符值 字符值 字符值 字符值 字符值 字符值 字符值0 0 6 6 C 12 I 18 O 24 U 30 SP 36 . 421 1 7 7 D 13 J 19 P 25 V 31 $ 37 / 432 2 8 8 E 14 K 20 Q 26 W 32 % 38
40、 : 443 3 9 9 F 15 L 21 R 27 X 33 * 394 4 A 10 G 16 M 22 S 28 Y 34 + 405 5 B 11 H 17 N 23 T 29 Z 35 - 41将输入的数据分为两个字符一组,用 11 位二进制表示。将前面字符的值乘以 45 与第二个字符的值相加,将所得的结果转换为 11 位二进制数。如果输入的数据的字符数不是 2的整数倍,将最后一个字符编码为 6 位二进制数。将所得的二进制数据连接起来并在前面加上模式指示符和字符计数指示符,按表 3 的规定在字母数字模式中,字符计数指示符的长度为 9、11 或 13 位,其定义见表 3。将输入的字符
41、数编码为 9、11 或 13 位二进制数,放在模式指示符之后,二进制数据序列之前。例(符号版本 1-H)输入的数据: AC-421)根据表 5 查出字符的值: AC-41(10,12,41,4,2)2)将结果分为 2 个一组: (10,12) (41,4) (2)3)将每组数据转换为 11 位二进制数: (10,12)10*45+1246200111001110(41,4)41*45+4184911100111001(2)20000104)二进制数据顺次连接: 00111001110 11100111001 0000105)将字符计数指示符转换为二进制(版本 1-H 为 9 位):输入的字符数
42、 50000001016)在二进制数据前加上模式指示符 0010 和字符计数指示符:0010 000000101 00111001110 11100111001 000010字母数据模式的二进制位流位数由下式计算:20B4C11(D DIV 2)6(D MOD 2)其中:B=位流的位数C=字符计数指示符的位数(根据表 3)D=输入的字符数8.4.4 8 位字节模式在本模式中,一个 8 位码字直接表示一个输入数据字符的 JIS8 字符值,即密度为每个字符 8 位,如表 6 所示。在非缺省的其它 ECI 中,它直接表示一个 8 位字节的值。21表 6 JIS8 字符集编码/译码表字符 值 字符 值
43、 字符 值 字符 值 字符 值 字符 值 字符 值 字符 值NUL 00 SP 20 40 60 80 A0 C0 E0SOH 01 ! 21 A 41 A 61 81 A1 C1 E1STX 02 “ 22 B 42 B 62 82 A2 C2 E2ETX 03 # 23 C 43 C 63 83 A3 C3 E3EOT 04 $ 24 D 44 D 64 84 A4 C4 E4ENQ 05 % 25 E 45 E 65 85 A5 C5 E5ACK 06 3B 5B 7B 9B BB DB FBFS 1C 3E 5E 7E 9E BE DE FEUS 1F ? 3F _ 5F DEL 7F
44、 9F BF DF FF注1 在JIS8字符集中,字节值80 HEX到 9F HEX以及E0 HEX 到 FF HEX 没有分配,为保留值。其中,有些值作为转换JIS字符集中的第一个字节,也可能用来区分JIS8和转换JIS字符集。详见JIS X 0208 附录1:转换编码表示。注2 除5C HEX和 7E HEX之外,JIS8字符集中字节值00 HEX 到7F HEX应和ISO 646 IRV一致。将二进制数据连接起来并在前面加上模式指示符和字符计数指示符。按表 3 的规定,8 位字节模式的字符计数指示符为 8 位或 16 位,将输入字符数转换为 8 位或 16 位二进制数据放在模式指示符之后
45、,二进制数据序列之前。8 位字节模式的位流的位数计算公式如下:D = 4 + C + 8D22其中:B=位流的位数C=字符计数指示符的位数(见表 3)D=输入数据的字符数8.4.5 日本汉字模式在转换 JIS 系统中,两个字节表示一个日本汉字字符。字节的值由 JIS X 0208 的值转换而来。详见 JIS X 0208 附录 1“编码字符的表示” 。将输入数据字符按下面定义转换为 13 位二进制码字。随后将二进制数据连接起来并在前面加上模式指示符和字符计数指示符。日本汉字模式的字符计数指示符的位数按表 3 规定为 8、10 或 12 位,将字符计数指示符转换为相应的 8、10 或 12 位二
46、进制数,放在模式指示符之后,二进制数据序列之前。1 对于转换 JIS 值为 8140HEX 到 9FFC HEX之间的字符:a) 将转换 JIS 值减去 8140HEX;b) 将高位字节乘以 C0HEX;c) 将 b 的结果加上低位字节;d) 将结果转换为 13 位二进制串。2 转换 JIS 值为 E040HEX 到 EBBFHEX之间的字符:a)将转换 JIS 值减去 C140HEX;b)将高位字节乘以 C0HEX;c)将 b 的结果加上低位字节;d)将结果转为 13 位二进制串。例:输入字符(转换 JIS 值): 935F E4AA1) 减去 8140 或 C140 935F 8140 =
47、 121F E4AAC140 = 236A2)第一字节乘以 C0 12C0 = D80 23C0 = 1A403) 加上第二字节的值 D801F = D9F 1A406A = 1AAA4) 转换为 13 为二进制数 0D9F 0 1101 1001 1111 1AAA 1 1010 1010 10103 对于所有的字符:e)在输入的数据字符的二进制队列前加上模式指示符(1000)和字符计数指示符的二进制表示(8,10 或 12 位) ;日本汉字模式的位流的位数由以下公式计算:B = 4 + C + 13D其中:B=位流的位数C=字符计数指示符的位数(见表 3)D=输入的数据字符数8.4.6 中
48、国汉字模式238.4.7 混合模式根据数据内容的要求或者为了增加编码密度,可以从一种模式转换到另一种模式来表示数据,详见附录 H。每一段数据按 8.4.1 到 8.4.5 中给出的相应模式进行编码。基本结构为模式指示符/字符计数指示符/数据,其后紧跟下一段的模式指示符开始另一段。图10 为有 N 段数据的结构。段 1 段 2 段 n模式指示符 1字符计数指示符数据 模式指示符 2字符计数指示符数据 模式指示符 n字符计数指示符数据图10 混合模式数据格式8.4.8 FNC1 模式有两种模式指示符,它们和 8.3.1 至 8.3.8 以及 8.4.1 至 8.4.6 规定的模式标志结合起来应用,
49、标识表示按特定的行业或应用的格式化的信息的符号,它们(和有关的参数数据一起)放在模式指示符之前。如果使用 FNC1 模式,解码译码器必需按 15.1 和附录 F 中的规定传输符号标识符。8.4.8.1 FNC1 在第一位置该模式指示符标识表示按 UCC/EAN 应用标识标准格式化信息的符号。因此,它在符号中只用一次,并总是放在用于高效对数据进行编码的第一个模式指示符(数字,字母数字,8 位字节或日本汉字、中国汉字)之前,ECI 或者结构链接头之后。在 UCC/EAN 规范中要求 FNC1 字符(在使用这一特殊字符的其它码制中)用作数据段分隔(即在可变长度数据段的末尾)时,QR 码符号将在字母数字模式中用%字符,在 8 位字节模式中用字符GS(ASCII/JIS8 值 29)实现这一功能。如果在数据中也有%符号出现,则应按%进行编码。译码器在这些符号中遇到%时,应按 ASCII/JIS8 值 29 进行传输;如果遇到%,则按单个%字符传输。例输入的数据:0104912345123459