Ce que fait l’ECI
L’ECI indique au lecteur quel jeu de caractères ou quelle interprétation des données s’applique aux octets qui suivent. Sans lui, le lecteur doit supposer une valeur par défaut ou deviner à partir des octets eux-mêmes.
L’ECI n’est pas propre aux QR codes. Le système est défini par AIM, l’association de l’industrie des codes-barres, et il est aussi pris en charge par le Data Matrix, l’Aztec Code, le PDF417, le MaxiCode et d’autres symbologies.
Comment il est encodé dans un QR code
Un segment ECI commence par l’indicateur de mode 0111, suivi d’un numéro de désignateur ECI de un à trois octets. L’interprétation reste en vigueur jusqu’à la fin des données ou jusqu’à ce qu’un autre ECI la change.
- ECI 3 : ISO-8859-1 (Latin-1)
- ECI 20 : Shift JIS
- ECI 26 : UTF-8
- Les désignateurs vont de 0 à 999999
La prise en charge en pratique
La prise en charge de l’ECI est inégale. Les scanners industriels et de documents le respectent souvent, alors que de nombreuses applications appareil photo de téléphone l’ignorent et détectent l’UTF-8 par inspection, ce qui fonctionne pour la plupart des contenus modernes.
Certains lecteurs plus anciens n’attendent pas d’en-tête ECI et peuvent afficher des caractères parasites ou échouer à analyser le contenu. Pour les URL courantes et le texte brut, la plupart des générateurs omettent l’ECI et s’appuient sur la détection de l’UTF-8.