Issue 61 in zxing: Support ECI in QR Codes

606 views
Skip to first unread message

codesite...@google.com

unread,
Jun 15, 2008, 7:40:01 PM6/15/08
to zx...@googlegroups.com
Issue 61: Support ECI in QR Codes
http://code.google.com/p/zxing/issues/detail?id=61

New issue report by srowen:
We should support ECI (Extended Channel Interpretation) in QR Codes
even if it is not widely used
as it is the only safe way to encode text in a particular encoding in a
QR Code.


Issue attributes:
Status: Accepted
Owner: srowen
Labels: Type-Enhancement Priority-Medium

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

codesite...@google.com

unread,
Jun 20, 2008, 9:33:49 AM6/20/08
to zx...@googlegroups.com

Comment #1 by srowen:
"Support" has been added in that the ECI mode designator is now
recognized and
parsed. But since there seems to be no available registry of what the
codes actually
mean (not even in AIM Global's ECI spec!), we can't do anything with it.


Issue attribute updates:
Status: Fixed

Nosh

unread,
Jun 20, 2008, 1:48:39 PM6/20/08
to zxing
> But since there seems to be no available registry of what the
> codes actually
> mean (not even in AIM Global's ECI spec!)

Sorry about that. I thought the codes are explained in this document.
Hopefully they are in the announced "part 3" of the document.
From googling I have found the following information. Lines with '???'
are guessed.

ECI 000000 (equates to original GLI 0) The lower half of the character
set (decimal value 0 to 127) equates to ISO/IEC 646: 1991 IRV
(equivalent to ANSI X3.4), the upper half (decimal value 128 to 255)
equates to Code Page PC437.

ECI 000001 (equates to original GLI 1) The lower half of the character
set (decimal value 0 to 127) equates to ISO/IEC 646: 1991 IRV
(equivalent to ANSI X3.4) and characters 128 to 255 being identical to
those values of ISO 8859-1.

NOTE: ECI 000000 (equivalent to GLI 0) and ECI 000001 (equivalent to
GLI 1) require a reset-to-GLI 0 logic at the beginning of each encoded
symbol of a Structured Append set of symbols.
This protocol is not adopted for other Extended Channel
Interpretations.

ECI 000002 has an equivalent code table to ECI 000000, without the
reset-to-GLI 0 logic.
ECI 000003 has an equivalent code table to ECI 000001, without the
reset-to-GLI 0 logic.
ECI 000004 ISO 8859-2 Latin-2 Central European ???
ECI 000005 ISO 8859-3 Latin-3 South European ???
ECI 000006 ISO 8859-4 Latin-4 North European ???
ECI 000007 ISO 8859-5 Latin/Cyrillic
ECI 000008 ISO 8859-6 Latin/Arabic ???
ECI 000009 ISO 8859-7 Latin/Greek
ECI 000010 ISO 8859-8 Latin/Hebrew ???
ECI 000011 ISO 8859-9 Latin-5 Turkish ???
ECI 000012 ISO 8859-10 Latin-6 Nordic ???
ECI 000013 ISO 8859-11 Latin/Thai ???
ECI 000015 ISO 8859-13 Latin-7 Baltic Rim ???
ECI 000016 ISO 8859-14 Latin-8 Celtic ???
ECI 000017 ISO 8859-15 Latin-9 ???
ECI 000018 ISO 8859-16 Latin-10 South-Eastern European ???
ECI 000020 Shift JIS

srowen

unread,
Jun 20, 2008, 4:48:33 PM6/20/08
to zxing
Haha, yeah I guessed the same values based on the "helpful" examples
they give, revealing what 0000003 and 0000009 are. I am happy to go
ahead and implement these guesses. Where did you figure out 000007 and
000020 for sure? I must have missed something.

Back to go ask my boss about shelling out for the exciting sequels,
parts 2 and 3, to see if this is correct.

codesite...@google.com

unread,
Jun 20, 2008, 6:39:10 PM6/20/08
to zx...@googlegroups.com

Comment #2 by srowen:
OK, added some actual support for character encoding ECI based on provisional
information from Nosh.

Nosh

unread,
Jun 20, 2008, 7:49:46 PM6/20/08
to zxing
> Where did you figure out 000007 and
> 000020 for sure?

ECI 000007 is in <http://www.defence.gov.au/dmo/lsd/standards/
part12al2.pdf>
ECI 000020 is at <http://www.tec-it.com/en/support/knowbase/
symbologies/qrcode/Default.aspx>

Nosh

unread,
Jun 21, 2008, 11:38:04 AM6/21/08
to zxing
> OK, added some actual support for character encoding ECI based on provisional
> information from Nosh.

Thank you, could you please add:

addCharacterSet(0, "Cp437");
addCharacterSet(1, "ISO8859_1");
addCharacterSet(2, "Cp437");

And perhaps change
addCharacterSet(20, "Shift-JIS");
to
addCharacterSet(20, "SJIS");
to use the same namespace for the encoding names.

Reply all
Reply to author
Forward
0 new messages