Extended Channel Interpretation (ECI) is an extension to the communication protocol that is used to transmit data from a bar code reader to a host when a bar code symbol is scanned. It enables the application software to receive additional information about the intended interpretation of the message contained within the barcode symbol and even details about the scan itself. ECI was developed as a symbology-independent extension of the Global Label Identifier (GLI) system used in the PDF417 bar code.
However, when ECI is in effect, the data interface is said to be in "Extended Channel Mode". In this mode the interpretation of the transmitted data is defined by the current ECI modes that are enabled, which are activated and deactivated by "ECI indicators" included in the transmitted data.
Within the data transmission protocol the use of ECI is indicated explicitly by a modification to the symbology indicator that the decoder will recognize and interpret accordingly in order to disambiguate between ECI and non-ECI encoded messages. If the reader is not ECI enabled or the application does not support the ECI indicators that are in effect then the scan should be aborted.
The ECI information is not part of the ultimate bar code message and its use is normally transparent to the user in basic image scanning scenarios. The application presents the user with the intended message, but it does not normally render the various ECI indicators that were used to derive this message or to provide annotation or additional metadata. For advanced applications (including system debugging and data validation) the ECI information may be rendered inline with the bar code message or extracted and presented separately.
For most barcode symbologies, the default code page (if not specified by ECI) is ISO/IEC 8859-1 (also known as Latin-1) as shown in bold below. Well-known ECI values, which are commonly used to indicate that a message segment is encoded using a specific code page or character encoding: QR code ECI encoding values Available ECI codes from Symbology.dev
|+ Interpretative character set ECI indicator to code pages (or encodings)|
|\000000, \000002||Code page 437|
|\000001, \000003||ISO/IEC 8859-1||Latin-1|
|\000016||ISO/IEC 8859-14||Latin-8 (Celtic)|
|\000021||Windows-1250||Superset of Latin-2|
|\000023||Windows-1252||Superset of Latin-1|