扩展频道解释 (Extended Channel Interpretation:ECI) 是对通信协议的扩展,用于在扫描条形码符号时将数据从条形码阅读器传输到主机。 它使应用软件能够接收有关条码符号中包含的消息的预期解释的附加信息,甚至是有关扫描本身的详细信息。 ECI 是作为 PDF417 条形码中使用的全球标签标识符 (GLI) 系统的符号独立扩展而开发的。
在默认模式下,扩展频道解释不起作用,阅读器和主机之间的接口被称为“基本频道模式”。 在这种模式下,传输数据的每个八位字节都被定义为(由相应的条形码符号标准)直接对应于某些默认字符集中的单个数据字符代码点,通常是 ISO/IEC 8859-1 (Latin-1)。
然而,当 ECI 生效时,数据接口被称为“扩展通道模式”。在这种模式下,传输数据的解释由当前启用的 ECI 模式定义,这些模式由传输数据中包含的“ECI 指示器”激活和停用。
在数据传输协议中,ECI 的使用通过对符号指示符的修改来明确指示,解码器将相应地识别和解释,以便消除 ECI 和非 ECI 编码消息之间的歧义。如果阅读器未启用 ECI 或应用程序不支持有效的 ECI 指示器,则应中止扫描。
ECI 信息不是最终条码信息的一部分,在基本的图像扫描场景中,它的使用通常对用户是透明的。应用程序向用户呈现预期的消息,但它通常不会呈现用于派生此消息或提供注释或附加元数据的各种 ECI 指标。对于高级应用程序(包括系统调试和数据验证),ECI 信息可以与条形码消息一起呈现或单独提取和呈现。
ECI 的类型
ECI 指示符可以包含在传输消息的各个点,并且可以是“可编码”类型或“不可编码”或“信号”类型。
可编码的 ECI
这些指示符是消息的一部分,定义了全部或部分数据的格式,例如预期的字符集或有效的数据压缩方案,例如 Gzip。
信号 ECI
这些指示符不是信息的一部分,它们可能与信息分开嵌入条形码符号中,也可能根本不存在于符号中,而是由阅读器在扫描时添加。信号 ECI 用于传达有关数据处理的信息,例如它是否是多符号扫描过程的片段,读取过程中是否发生错误情况,甚至提供环境信息,例如环境光照水平是多少测量或提供低电量指示。
常见用例:启用对国际字符集的支持
扩展通道解释最常见的用途是允许在条形码符号中可靠地使用通常不受支持的国家字符集,例如阿拉伯语、希腊语或日语。 ]启用 ECI 的条形码符号可以通过嵌入多个字符集 ECI 指示符来使用多个字符集,以分隔使用不同代码页编码的消息段。
对于大多数条码符号,默认代码页(如果 ECI 未指定)为 ISO/IEC 8859-1(也称为 Latin-1),如下面的粗体所示。众所周知的 ECI 值,通常用于指示消息段是使用特定代码页或字符编码进行编码的:
ECI | Code page or encoding | Notes |
---|---|---|
3 | ISO/IEC 8859-1 | Latin-1 |
4 | ISO/IEC 8859-2 | Latin-2 |
5 | ISO/IEC 8859-3 | Latin-3 |
6 | ISO/IEC 8859-4 | Latin-4 |
7 | ISO/IEC 8859-5 | Latin/Cyrillic |
8 | ISO/IEC 8859-6 | Latin/Arabic |
9 | ISO/IEC 8859-7 | Latin/Greek |
10 | ISO/IEC 8859-8 | Latin/Hebrew |
11 | ISO/IEC 8859-9 | Latin-5 |
12 | ISO/IEC 8859-10 | Latin-6 |
13 | ISO/IEC 8859-11 | Latin/Thai |
15 | ISO/IEC 8859-13 | Latin-7 |
16 | ISO/IEC 8859-14 | Latin-8 (Celtic) |
17 | ISO/IEC 8859-15 | Latin-9 |
18 | ISO/IEC 8859-16 | Latin-10 |
20 | Shift JIS | |
21 | Windows-1250 | Superset of Latin-2 |
22 | Windows-1251 | Latin/Cyrillic |
23 | Windows-1252 | Superset of Latin-1 |
24 | Windows-1256 | Arabic |
25 | UCS-2BE | |
26 | UTF-8 | |
27 | ISO 646 ASCII | |
28 | Big5 (Taiwan) | |
29 | GB 2312 (PRC) | |
30 | Korean EUC-KR | |
899 | 8-bit binary data |