扩展通道解释(ECI)

又称: ECI, ECI 标识符, 字符集声明

定义

扩展通道解释(ECI)是条码内部的一种转义码,用来声明后面的字节应如何解读,例如 ECI 26 表示 UTF-8。许多读取器会忽略它,转而自行猜测。

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 识别。

常见问题

二维码里的 UTF-8 文本需要 ECI 吗?

通常不需要。大多数手机读取器会自动识别 UTF-8,而 ECI 可能让少数较旧的读取器困惑。它在必须准确解读数据的场合最有用,比如工业系统。

为什么我的二维码扫出来显示奇怪的字符?

读取器可能对字节模式的数据猜错了字符集。用 ECI 26 声明 UTF-8,或换一个读取器测试,有助于找出原因。

来源与标准

全部术语