Extended Channel Interpretation (ECI)

Também chamado de: ECI, designador ECI, declaração de conjunto de caracteres, interpretação de canal estendida

Definição

Extended Channel Interpretation (ECI) é um código de escape dentro de um código de barras que declara como os bytes seguintes devem ser lidos, como o ECI 26 para UTF-8. Muitos leitores o ignoram e tentam adivinhar.

O que o ECI faz

O ECI informa ao leitor qual conjunto de caracteres ou interpretação de dados vale para os bytes seguintes. Sem ele, o leitor precisa assumir um padrão ou deduzi-lo a partir dos próprios bytes.

O ECI não é exclusivo dos QR Codes. O esquema é definido pela AIM, a associação do setor de códigos de barras, e também é aceito pelo Data Matrix, pelo código Aztec, pelo PDF417, pelo MaxiCode e por outras simbologias.

Como é codificado num QR Code

Um segmento ECI começa com o indicador de modo 0111, seguido de um número designador ECI de um a três bytes. A interpretação vale até o fim dos dados ou até que outro ECI a altere.

  • ECI 3: ISO-8859-1 (Latin-1)
  • ECI 20: Shift JIS
  • ECI 26: UTF-8
  • Os designadores vão de 0 a 999999

Suporte na prática

O suporte ao ECI é irregular. Leitores industriais e de documentos costumam respeitá-lo, enquanto muitos apps de câmera de celular o ignoram e detectam o UTF-8 pela inspeção, o que funciona para a maior parte do conteúdo moderno.

Alguns leitores mais antigos não esperam um cabeçalho ECI e podem mostrar caracteres estranhos ou falhar ao interpretar o conteúdo. Para URLs comuns e texto simples, a maioria dos geradores omite o ECI e conta com a detecção de UTF-8.

Perguntas frequentes

Preciso de ECI para texto UTF-8 num QR Code?

Normalmente não. A maioria dos leitores de celular reconhece o UTF-8 automaticamente, e o ECI pode confundir alguns leitores mais antigos. Ele é mais útil quando os dados precisam ser interpretados com exatidão, como em sistemas industriais.

Por que meu QR Code mostra caracteres estranhos ao ser lido?

O leitor pode ter adivinhado o conjunto de caracteres errado para dados em modo byte. Declarar UTF-8 com o ECI 26, ou testar com outro leitor, pode ajudar a identificar a causa.

Fontes e normas

Todos os termos