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.