擴充通道解釋(ECI)

又稱: ECI, ECI 指定碼, 字元集宣告, Extended Channel Interpretation

定義

擴充通道解釋(ECI)是條碼內的跳脫碼,用來宣告後面的位元組應如何解讀,例如 ECI 26 代表 UTF-8。許多讀取器會忽略它,改用猜測的方式。

ECI 的作用

ECI 告訴讀取器,後面的位元組適用哪一種字元集或資料解讀方式。沒有它,讀取器就得假設預設值,或從位元組本身去猜。

ECI 並非 QR Code 專有。這套機制由條碼產業協會 AIM 定義,Data Matrix、Aztec Code、PDF417、MaxiCode 與其他符號體系也支援。

在 QR Code 中如何編碼

ECI 片段以模式指示碼 0111 開頭,接著是一到三個位元組的 ECI 指定碼編號。這個解讀方式會一直有效,直到資料結束,或被另一個 ECI 改變。

  • ECI 3:ISO-8859-1(Latin-1)
  • ECI 20:Shift JIS
  • ECI 26:UTF-8
  • 指定碼範圍從 0 到 999999

實務上的支援

對 ECI 的支援並不平均。工業與文件掃描器通常會遵循它,但許多手機相機 App 會忽略它,改用檢查內容的方式偵測 UTF-8,這對大多數現代內容都行得通。

有些較舊的讀取器並不預期出現 ECI 標頭,可能顯示多餘的字元,或無法解析內容。對於日常的網址與純文字,大多數產生器會省略 ECI,依靠 UTF-8 偵測。

常見問題

QR Code 裡的 UTF-8 文字需要 ECI 嗎?

通常不需要。大多數手機讀取器會自動辨識 UTF-8,而 ECI 可能讓少數較舊的讀取器混淆。它在資料必須被精確解讀時最有用,例如工業系統。

為什麼我的 QR Code 掃出來是奇怪的字元?

讀取器可能對位元組模式的資料猜錯了字元集。用 ECI 26 宣告 UTF-8,或改用其他讀取器測試,有助於找出原因。

來源與標準

所有名詞