ECI 的作用
ECI 告诉读取器,后面的字节适用哪种字符集或数据解释方式。没有它,读取器只能假定一个默认值,或者根据字节本身去猜。
ECI 并非二维码独有。这一方案由条码行业协会 AIM 定义,Data Matrix、Aztec 码、PDF417、MaxiCode 和其他码制也支持它。
它在二维码中如何编码
ECI 分段以模式指示符 0111 开头,后面跟一个一到三个字节的 ECI 标识符编号。这种解释一直有效,直到数据结束,或者被另一个 ECI 改变。
- ECI 3:ISO-8859-1(Latin-1)
- ECI 20:Shift JIS
- ECI 26:UTF-8
- 标识符范围为 0 到 999999
实际中的支持情况
对 ECI 的支持参差不齐。工业和文档扫描器通常遵循它,而许多手机相机应用会忽略它,转而通过检查字节识别 UTF-8,这对大多数现代内容都行得通。
一些较旧的读取器并不期待 ECI 头部,可能显示乱码字符,或者无法解析内容。对于日常的网址和纯文本,大多数生成器会省略 ECI,依靠 UTF-8 识别。