Han Xin code

Last updated • 11 min readFrom Wikipedia, The Free Encyclopedia
Han Xin Code version 22 Han Xin Code Example V22.png
Han Xin Code version 22

Han Xin code (汉信码 in Chinese, Chinese-sensible code) is two-dimensional (2D) matrix barcode symbology invented in 2007 [1] by Chinese company The Article Numbering Center of China [2] (中国物品编码中心 in Chinese) to break monopoly of QR code. As QR code, Han Xin code consists of black squares and white square spaces arranged in a square grid on a white background. It has four finder patterns and other markers which allow to recognize it with camera-based readers. Han Xin code contains Reed–Solomon error correction with ability to read corrupted images. At this time, it is issued as ISO/IEC 20830:2021. [3]

Contents

The main advantage (and invention requirement), comparable to QR code, is an embedded ability to natively encode Chinese characters instead of Japanese in QR code. Han Xin code in maximal 84 version (189×189 size) [4] allows to encode 7827 numeric characters, 4350 English text characters, 3261 bytes and 1044–2174 Chinese characters (it depends on Unicode region). Han Xin code encodes full ISO/IEC 646 Latin characters instead of restricted amount Latin characters which is supported by QR code. It makes Han Xin code more suitable for English text encoding or GS1 Application Identifiers [5] data encoding.

Additionally, Han Xin code can encode Unicode characters from other languages with special Unicode mode, [3] :5.4.12 which has embedded lossless compression for UTF-8 characters set and Extended Channel Interpretation support. Han Xin code has special compactification mode for URI encoding and can reduce barcode size which encodes links to web pages.

History and standards

Chinese company The Article Numbering Center of China (中国物品编码中心 in Chinese) during 10-th Five-year plans of China started research [6] of own QR code replacement to remove Japanese monopoly in 2D barcodes. In 2007, the new barcodes standard, at this time known as Han Xin code, published as GB/T 21049-2007 [1] with the name Chinese-sensible code.

In 2011, [7] USA company Association for Automatic Identification and Mobility (AIM) brought out ISS Han Xin Code symbology as official encoding standard and published it in the own store. [8]

In 2015, group of ISO/IEC JTC 1/SC 31 started implementation [9] of Han Xin code as international standard and published it as ISO/IEC 20830:2021 [3] in 2021.

In 2022 Chinese-sensible code standard was reviewed as GB/T 21049-2022 [10] and renamed as Han Xin code to be compliant with ISO standard.

Set of patents is registered in United States Patent and Trademark Office related with Han Xin code encoding and decoding:

Application

Han Xin code can be used in the same way as QR code. At this time Han Xin code is used mostly in China, [14] because it has embedded encoding ability to encode Chinese characters. However, most of barcode printers [15] and barcode scanners [16] support Han Xin code. Han Xin code can be scanned on iOS [17] and Android [18] mobile devices and many barcode libraries [19] [20] support reading and writing Han Xin code.

Main advantages of Han Xin code are:

Barcode design

Barcode structure of Han Xin Code Han Xin Code Barcode Structure.png
Barcode structure of Han Xin Code

Han Xin code represents data in black and white square modules, where dark module is a binary one and a light module is a zero. Additionally, Han Xin code can be encoded in inverse colors, [3] :4.1.2 but this option in many barcode readers is disabled by default. Black and white modules are arranged into square region with sizes from 23 × 23 modules (Version 1) to 189 × 189 modules (Version 84). As QR code, Han Xin code does not have rectangular versions like DataMatrix has and this restricts usage of Han Xin code in some cases. Han Xin code version size can be calculated with the following formula:

Han Xin code symbol is constructed from the following elements: [3] :4.2

Finder pattern

Han Xin Code finder pattern Han Xin Code Finder Patterns.png
Han Xin Code finder pattern

Finder Pattern [3] :4.2.3 consists from four Position Detection Patterns located at the four corners of the barcode. The size of Position Detection Pattern is 7×7 modules and it is constructed from 5 elements: dark 7 × 7 modules, light 6 × 6 modules, dark 5 × 5 modules, light 4 × 4 modules, dark 3 × 3 modules respectively.

The scanning ratio of each Position Detection Pattern is 1:1:1:1:3 or 3:1:1:1:1 (depends on scanning direction). The four patterns orientation allows to detect unambiguously the barcode location and orientation.

Every pattern has Position Detection Pattern separator [3] :4.2.4 with Structural Information Region aligned to it.

Alignment pattern

The Alignment Patterns [3] :4.2.5 are added to the Han Xin code from Version 4 (Versions 1–3 do not have alignment patterns) and used to precise cell position in the distorted barcodes. Alignment Patterns in Han Xin code are split into:

The Alignment Pattern is made up of a dark line and a downside adjacent light line which are one module wide. Assistant Alignment Pattern consisting from 5 light modules and 1 dark module indicates edge of region block with its dark module.

Below you can see examples of Han Xin code with different Alignment pattern placement.

Structural information

Structural information placement of Han Xin Code Han Xin Code Structural Information Placement.png
Structural information placement of Han Xin Code

Han Xin code Structural Information Region [3] :4.2.7 is a one module wide region surrounding the four Position Detection Patterns. Han Xin code has two Structural Information identical arrays, which are made from 34 data modules. Every Structural Information array is split on 17 modules which are placed around each Position Detection Pattern.

Structural Information Region encodes the following data: [3] :Annex E

Metadata bits from 0–11 are split into 4 bits tetrads(m2, m1, m0) and supplemented with four error correction tetrads (r3, r2, r1, r0).

Han Xin Code Structural information bits
Version + 20Error correction levelMask indexError correction codewords
m2m1m0r3r2r1r0
X0X1X2X3X4X5X6X7X8X9X10X11X12X13X14X15X16X17X18X19X20X21X22X23X24X25X26X27

Data masking

To make Han Xin code dark and light modules amount to be closely to 1:1 in the symbol, masking algorithm [3] :5.8.4 is used. Masking sequence is applied to Data Region through the XOR operation. Finder Pattern, Alignment Patterns and Structural Information Regions are excluded from masking operation. The following table shows mask pattern algorithms (which is placed to Structural Information Region).

Han Xin Code masking pattern algorithm
Condition of masking solutionData mask pattern reference
Non-masking00
(i+j) mod 2=001
((i+j)mod 3+( j mod 3)) mod 2=010
(i mod j +j mod i + i mod 3+ j mod 3) mod 2=011

i - Row index of the symbol.
j - Column index of the symbol.
Both i and j start from (1,1), the top left corner module of the symbol. When the masking solution condition is true, the resulting mask bit is 1.

Error correction

Han Xin code uses Reed–Solomon error correction. Encoded data is represented as byte (8-bit) array. Data array divided into blocks [3] :Annex B and error correction codewords sequence is generated for each block which is added to the end of the error correction block. After this, all blocks are merged sequentially into byte stream.

The polynomial arithmetic for Han Xin Code uses finite field generation polynomial: x^8 + x^6 + x^5 + x (355 or 101100011b) [3] :5.5 with initial root = 1.

The amount of error correction codewords depends on symbol version and error correction level and can be from 16% to 60%, which allows to correct from 8% to 30% damage. [3] :5.6.2

Han Xin Code error correction levels features
Error correction levelRecovery capacity % (approximation)Encoding of error correction level
L18%00
L215%01
L323%10
L430%11

Data region

Han Xin code data is encoded as byte array. Data byte array is split into error correction blocks, where error correction codewords (bytes) are added. Error correction blocks are united into one codewords array: [3] :5.8.3

(Encoded byte array) => (Error correction block 1) + ... + (Error correction block N) => (Codewords array)

As an example, this can be demonstrated on Han Xin code version 5 with error correction level L4. It has 27 encoded codewords and 2 error correction blocks with each block size of data codewords and error correction codewords: (14, 20), (13, 22):

(D1...D14, D15...D27) => (D1...D14, E1.1...1.20) + (D15...D27, E2.1...2.22) => (D1...D14, E1.1...1.20, D15...D27, E2.1...2.22) => (C1...C69)
D(x) - Data codewords.
E(b.x) - error codeword, where b is block number and x position in block.
C(x) - resulted codewords.

As the next operation, resulted codewords array C(x) is split into blocks with size of 13 bytes which connects codewords in the same position of each block and form new codewords array. The result is byte array of the same size but mixed by position of 13.

(С1...С13, С14...С26, Сn...Cn+12) => (С1, C14, Cn...С13, С26, Cn+12) => (CM1...CMn+12)
CM(x) – mixed by position of 13 array of codewords (bytes).

After the upper operations the resulted codewords are placed into data region row by row from left to right and from up to down. Horizontal line damage would affect fewer codewords, vertical line damage would affect more codewords.

Encoding

Han Xin code can encode 7827 numeric characters, 4350 English text characters, 3261 bytes and 1044–2174 Chinese characters in the maximal version 84 version. [3] :Annex C Additionally, it supports special Unicode and industrial modes. All modes can be mixed to obtain best compactification level for the data. The following table demonstrates abilities to encode data with different barcode version and error correction level.

Han Xin Code versions and information capacity
VersionSizeError correction levelData codewordsError correction codewordsNumericTextBytesChinese characters
123×23L12144526186–12
L4916151062–4
...
2265×65L135468843470351113–234
L416825439922216553–110
...
84189×189L132646227827435032611044–2174
L415542332372320701551497–1034

Encoding modes

All encoding modes can be split into the following groups: [3] :5.3.1

Han Xin Code mode characteristics
ModeMode indicatorsBits per character
Numeric0001b3.3 (10 bits for three digits)
Text0010b6
Binary Byte0011b8
Common Chinese Characters in Region One0100b12
Common Chinese Characters in Region Two0101b12
GB18030 2-byte Region0110b15
GB18030 4-byte Region0111b21
ECI1000bVariable (multi-bytes mode)
Unicode1001bAdaptive (lossless compression)
GS111100001bVariable (Numeric + Text modes)
URI11100010bVariable (2–7 bits per character)

Numeric mode

The input data string in Numeric mode [3] :5.4.4 is divided into blocks of three digits (the last block can be less than three) and encoded in 10 bits (0000000000b - 1111100111b). The mode data is prefixed with mode indicator 0001b and terminates with mode terminator which also indicates number of digits in last group.

Han Xin Code numeric mode terminators
Numeric characters in last groupMode terminator
11111111101b
21111111110b
31111111111b

As an example, we need to encode digits sequence 12700402:
Prefix => 0001b
127 => 0001111111
004 => 0000000100
02 => 0000000010
Terminator => 1111111110b

Text mode

Text mode encodes data characters set from ISO/IEC 646. Each character is represented by 6 bits. [3] :5.4.5 All characters are divided into two subsets: Text1 sub-mode and Text2 sub-mode. 11110b value is used to switch between text sub-modes, 111111b is a mode terminator. Text mode starts from Text1 sub-mode.

Han Xin Code Text1 sub-mode
CharacterASCII valueEncoding valueCharacterASCII valueEncoding valueCharacterASCII valueEncoding value
048000000bL76010101bg103101010b
149000001bM77010110bh104101011b
250000010bN78010111bi105101100b
351000011bO79011000bj106101101b
452000100bP80011001bk107101110b
553000101bQ81011010bl108101111b
654000110bR82011011bm109110000b
755000111bS83011100bn110110001b
856001000bT84011101bo111110010b
957001001bU85011110bp112110011b
A65001010bV86011111bq113110100b
B66001011bW87100000br114110101b
C67001100bX88100001bs115110110b
D68001101bY89100010bt116110111b
E69001110bZ90100011bu117111000b
F70001111ba97100100bv118111001b
G71010000bb98100101bw119111010b
H72010001bc99100110bx120111011b
I73010010bd100100111by121111100b
J74010011be101101000bz122111101b
K75010100bf102101001b
Han Xin Code Text2 sub-mode
CharacterASCII valueEncoding valueCharacterASCII valueEncoding valueCharacterASCII valueEncoding value
NUL0000000bNAK21010101b.46101010b
SOH1000001bSYN22010110b/47101011b
STX2000010bETB23010111b:58101100b
ETX3000011bCAN24011000b;59101101b
EOT4000100bEM25011001b<60101110b
ENQ5000101bSUB26011010b=61101111b
ACK6000110bESC27011011b>62110000b
BEL7000111bSP32011100b?63110001b
BS8001000b!33011101b@64110010b
HT9001001b34011110b[91110011b
LF10001010b#35011111b\92110100b
VT11001011b$36100000b]93110101b
FF12001100b%37100001b^94110110b
CR13001101b&38100010b_95110111b
SO14001110b39100011b`96111000b
SI15001111b(40100100b{123111001b
DLE16010000b)41100101b|124111010b
DC117010001b*42100110b}125111011b
DC218010010b+43100111b~126111100b
DC319010011b,44101000bDEL27111101b
DC420010100b-45101001b

Binary byte mode

Binary mode encodes bytes array [0 – 255] in any form. Binary mode [3] :5.4.6 consists from binary mode indicator 0011b, 13-bit binary counter and bytes data which are converted to 8-bit sequence. None mode terminator is required.

Chinese Characters modes

Chinese Characters modes is a set of 4 modes which encodes Chinese characters from GB 18030 codepage.

Han Xin Code Chinese Characters modes
ModeMode indicatorBitsEncoding characters countDescription
Common Chinese Characters in Region One mode [3] :5.4.70100b124074Encodes characters from GB 18030 regions, which: first byte value is in the range of B0 to D7 and second byte value is in the range of A1 to FE (3760 characters), first byte value is in the range of A1 to A3 and second byte value is in the range of A1 to FE (282 characters), in the range of A8A1 to A8C0 (32 characters).
Common Chinese Characters in Region Two mode [3] :5.4.80101b123008Encodes characters from GB 18030 region, which first byte value is in the range of D8 to F7 and second byte value is in the range of A1 to FE (3008 characters).
GB18030 2-byte Region mode [3] :5.4.90110b1523940Encodes characters from GB 18030 region, which first byte value is in the range of 81 to FE and second byte value is in the range of 40 to 7E or 80 to FE (23940 characters).
GB18030 4-byte Region mode [3] :5.4.100111b211587600Encodes characters from GB 18030 region, which first byte value is in the range of 81 to FE, and second byte value is in the range of 30 to 39, and third byte value is in the range of 81 to FE, and fourth byte value is in the range of 30 to 39 (1587600 characters).

Unicode mode

Unicode mode [3] :5.4.12 encodes UTF-8 charset with embedded lossless compression. In the Unicode mode, the input data is analysed by using self-adaptive algorithm. Firstly, input data is divided and combined into the 1, 2, 3, or 4 byte pattern preencoding sub-sequences, and secondly a run-length data compression algorithm is applied to encode each sub-sequences of the input data.

Shortly, the Unicode mode searches characters sub-pages which can have the same prefix sequence for all of characters of the same language (Cyrillic, Greek, French, German... languages) and encodes only differences from prefix bytes sequence.

GS1 mode

Han Xin code GS1 mode [3] :5.4.13 is an indicator that the represented data is defined by GS1 General Specification. GS1 mode encodes data in Numeric and Text modes. Other modes may be used but GS1 mode must be first mode in the symbol and encoded data must be returned with GS1 flag. <FNC1> (if required) must be encoded as 1111101000b in Numeric mode (Numeric mode encodes only three digits, so 1111101000b => 1000 value is counted as special character). In case <FNC1> identifier must be inserted and encoder is in any mode different from Numeric, the mode must be terminated and Numeric mode must be started. GS1 mode indicator is 11100001b and GS1 mode terminator is 11111111b.

The data in GS1 mode is split into GS1 Application Identifiers chinks and then compacted with the best modes. As an example, the following data can be encoded:
(10)123456ABC<FNC1>(240)DATA

The data is encoded in the following way:
<11100001b> <Numeric 10123456> <Text ABC> <Numeric mode selector> <1111101000b> <Numeric 240> <Text DATA> <11111111b>

URI mode

Han Xin code URI mode [3] :5.4.14 encodes URI links in compact encoding. URI mode indicator is 11100010b and URI mode terminator is 111b. URI mode can encode data in three charsets: URI-A, URI-B, URI-C [3] :Annex M with own sub-mode terminators. URI mode can encode %XX data in special Percent-Encoding sub-mode, where three symbols is encoded in 8 bits.

Han Xin Code URI submodes
CharsetCharset indicator
URI-A001b
URI-B010b
URI-C011b
Percent-Encoding100b
URI Mode Teminator111b

Percent-Encoding sub-mode encodes %XX data in 8 bits sequence. The mode does not require any terminator. To encode URI %XX data in this mode, sub-mode indicator (100b) must be added, then 8-bit indicator of sub-mode 8 bits sequence must be added (counter = Length of %XX / 3) and after this sequence, where %FF, or %ff, or %00, must be added as xFF or x00 bytes.

Han Xin Code URI-A and URI-B charsets
URI-A charsetURI-B charset
Character / URI fragmentEncoding valueEncoding bitsCharacter / URI fragmentEncoding valueEncoding bits
a0000000A0000000
b1000001B1000001
c2000010C2000010
d3000011D3000011
e4000100E4000100
f5000101F5000101
g6000110G6000110
h7000111H7000111
i8001000I8001000
j9001001J9001001
k10001010K10001010
l11001011L11001011
m12001100M12001100
n13001101N13001101
o14001110O14001110
p15001111P15001111
q16010000Q16010000
r17010001R17010001
s18010010S18010010
t19010011T19010011
u20010100U20010100
v21010101V21010101
w22010110W22010110
x23010111X23010111
y24011000Y24011000
z25011001Z25011001
026011010 !26011010
127011011*27011011
228011100(28011100
329011101)29011101
430011110,30011110
531011111{31011111
632100000}32100000
733100001|33100001
834100010\34100010
935100011^35100011
.36100100[36100100
/37100101]37100101
-38100110'38100110
_39100111<39100111
~40101000>40101000
 :41101001%41101001
@42101010"42101010
?43101011;43101011
#44101100.htm44101100
=45101101.html45101101
+46101110.asp46101110
$47101111.aspx47101111
&48110000.php48110000
http://49110001.jsp49110001
https://50110010gtin50110010
ftp://51110011ser51110011
mailto:52110100bat52110100
ldap://53110101exp53110101
tel:54110110search54110110
urn:55110111id55110111
www.56111000.jp56111000
.com57111001.it57111001
.net58111010.de58111010
.gov59111011.br59111011
.org60111100.fr60111100
.cn61111101gs161111101
Jump to URI-B62111110Jump to URI-A62111110
Terminator of URI-A63111111Terminator of URI-B63111111
Han Xin Code URI-C charset
Character / URI fragmentEncoding valueEncoding bitsCharacter / URI fragmentEncoding valueEncoding bitsCharacter / URI fragmentEncoding valueEncoding bits
A00000000R430101011;861010110
B10000001S440101100/871010111
C20000010T450101101?881011000
D30000011U460101110:891011001
E40000100V470101111@901011010
F50000101W480110000&911011011
G60000110X490110001=921011100
H70000111Y500110010http://931011101
I80001000Z510110011https://941011110
J900010010520110100ftp://951011111
K1000010101530110101mailto:961100000
L1100010112540110110ldap://971100001
m1200011003550110111tel:981100010
N1300011014560111000urn:991100011
O1400011105570111001www.1001100100
P1500011116580111010.com1011100101
Q1600100007590111011.net1021100110
R1700100018600111100.gov1031100111
S1800100109610111101.org1041101000
T190010011$620111110.cn1051101001
U200010100-630111111.htm1061101010
V210010101_641000000.html1071101011
w220010110.651000001.asp1081101100
X230010111+661000010.aspx1091101101
Y240011000!671000011.php1101101110
Z250011001*681000100.jsp1111101111
A260011010(691000101gtin1121110000
B270011011)701000110ser1131110001
C280011100,711000111bat1141110010
D290011101{721001000exp1151110011
E300011110}731001001search1161110100
F310011111|741001010id1171110101
G320100000\751001011.jp1181110110
H330100001^761001100.it1191110111
I340100010~771001101.de1201111000
J350100011[781001110.br1211111001
K360100100]791001111.fr1221111010
L370100101'801010000gs11231111011
M380100110<811010001search1241111100
N390100111>821010010Jump to URI-A1251111101
O400101000#831010011Jump to URI-B1261111110
P410101001%841010100Terminator of URI-C1271111111
Q420101010"851010101

See also

Related Research Articles

<span class="mw-page-title-main">Character encoding</span> Using numbers to represent text characters

Character encoding is the process of assigning numbers to graphical characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using digital computers. The numerical values that make up a character encoding are known as "code points" and collectively comprise a "code space", a "code page", or a "character map".

ISO/IEC 8859 is a joint ISO and IEC series of standards for 8-bit character encodings. The series of standards consists of numbered parts, such as ISO/IEC 8859-1, ISO/IEC 8859-2, etc. There are 15 parts, excluding the abandoned ISO/IEC 8859-12. The ISO working group maintaining this series of standards has been disbanded.

UTF-8 is a variable-length character encoding standard used for electronic communication. Defined by the Unicode Standard, the name is derived from Unicode Transformation Format – 8-bit.

<span class="mw-page-title-main">Character (computing)</span> Primitive data type

In computer and machine-based telecommunications terminology, a character is a unit of information that roughly corresponds to a grapheme, grapheme-like unit, or symbol, such as in an alphabet or syllabary in the written form of a natural language.

ISO/IEC 2022Information technology—Character code structure and extension techniques, is an ISO/IEC standard in the field of character encoding. It is equivalent to the ECMA standard ECMA-35, the ANSI standard ANSI X3.41 and the Japanese Industrial Standard JIS X 0202. Originating in 1971, it was most recently revised in 1994.

Extended Unix Code (EUC) is a multibyte character encoding system used primarily for Japanese, Korean, and simplified Chinese (characters).

GB/T 2312-1980 is a key official character set of the People's Republic of China, used for Simplified Chinese characters. GB2312 is the registered internet name for EUC-CN, which is its usual encoded form. GB refers to the Guobiao standards (国家标准), whereas the T suffix denotes a non-mandatory standard.

<span class="mw-page-title-main">PDF417</span> Type of barcode

PDF417 is a stacked linear barcode format used in a variety of applications such as transport, identification cards, and inventory management. "PDF" stands for Portable Data File. The "417" signifies that each pattern in the code consists of 4 bars and spaces in a pattern that is 17 units (modules) long. The PDF417 symbology was invented by Dr. Ynjiun P. Wang at Symbol Technologies in 1991. It is defined in ISO 15438.

<span class="mw-page-title-main">Aztec Code</span> Type of matrix barcode

The Aztec Code is a matrix code invented by Andrew Longacre, Jr. and Robert Hussey in 1995. The code was published by AIM, Inc. in 1997. Although the Aztec Code was patented, that patent was officially made public domain. The Aztec Code is also published as ISO/IEC 24778:2008 standard. Named after the resemblance of the central finder pattern to an Aztec pyramid, Aztec Code has the potential to use less space than other matrix barcodes because it does not require a surrounding blank "quiet zone".

<span class="mw-page-title-main">MaxiCode</span> Machine-readable symbol system

MaxiCode is a public domain, machine-readable symbol system originally created by the United Parcel Service (UPS) in 1992. Suitable for tracking and managing the shipment of packages, it resembles an Aztec Code or QR code, but uses dots arranged in a hexagonal grid instead of square grid. MaxiCode has been standardised under ISO/IEC 16023.

<span class="mw-page-title-main">Code 128</span> Barcode format

Code 128 is a high-density linear barcode symbology defined in ISO/IEC 15417:2007. It is used for alphanumeric or numeric-only barcodes. It can encode all 128 characters of ASCII and, by use of an extension symbol (FNC4), the Latin-1 characters defined in ISO/IEC 8859-1. It generally results in more compact barcodes compared to other methods like Code 39, especially when the texts contain mostly digits. Code 128 was developed by the Computer Identics Corporation in 1981.

<span class="mw-page-title-main">QR code</span> Type of matrix barcode

A QR code is a type of two-dimensional matrix barcode, invented in 1994, by Japanese company Denso Wave for labelling automobile parts. It features black squares on a white background with fiducial markers, readable by imaging devices like cameras, and processed using Reed–Solomon error correction until the image can be appropriately interpreted. The required data are then extracted from patterns that are present in both the horizontal and the vertical components of the QR image.

<span class="mw-page-title-main">Data Matrix</span> Two-dimensional matrix barcode

A Data Matrix is a two-dimensional code consisting of black and white "cells" or dots arranged in either a square or rectangular pattern, also known as a matrix. The information to be encoded can be text or numeric data. Usual data size is from a few bytes up to 1556 bytes. The length of the encoded data depends on the number of cells in the matrix. Error correction codes are often used to increase reliability: even if one or more cells are damaged so it is unreadable, the message can still be read. A Data Matrix symbol can store up to 2,335 alphanumeric characters.

KPS 9566 is a North Korean standard specifying a character encoding for the Chosŏn'gŭl (Hangul) writing system used for the Korean language. The edition of 1997 specified an ISO 2022-compliant 94×94 two-byte coded character set. Subsequent editions have added additional encoded characters outside of the 94×94 plane, in a manner comparable to UHC or GBK.

The Universal Coded Character Set is a standard set of characters defined by the international standard ISO/IEC 10646, Information technology — Universal Coded Character Set (UCS), which is the basis of many character encodings, improving as characters from previously unrepresented typing systems are added.

The CCITT Chinese Primary Set is a multi-byte graphic character set for Chinese communications created for the Consultative Committee on International Telephone and Telegraph (CCITT) in 1992. It is defined in ITU T.101, annex C, which codifies Data Syntax 2 Videotex. It is registered with the ISO-IR registry for use with ISO/IEC 2022 as ISO-IR-165, and encodable in the ISO-2022-CN-EXT code version.

Barcode library or Barcode SDK is a software library that can be used to add barcode features to desktop, web, mobile or embedded applications. Barcode library presents sets of subroutines or objects which allow to create barcode images and put them on surfaces or recognize machine-encoded text / data from scanned or captured by camera images with embedded barcodes. The library can support two modes: generation and recognition mode, some libraries support barcode reading and writing in the same way, but some libraries support only one mode.

<span class="mw-page-title-main">MicroPDF417</span>

MicroPDF417 is two-dimensional (2D) stacked barcode symbology invented in 1996, by Frederick Schuessler, Kevin Hunter, Sundeep Kumar and Cary Chu from Symbol Technologies company. MicroPDF417 consists from specially encoded Row Address Patterns (RAP) columns and aligned to them Data columns encoded in "417" sequence which was invented in 1990. In 2006, the standard was registered as ISO/IEC 24728:2006.

<span class="mw-page-title-main">DotCode</span> Type of matrix barcode

DotCode is two-dimensional (2D) matrix barcode invented in 2008 by Hand Held Products company to replace outdated Code 128. At this time, it is issued by Association for Automatic Identification and Mobility (AIM) as “ISS DotCode Symbology Specification 4.0”. DotCode consists of sparse black round dots and white spaces on white background. In case of black background round dots, creating barcode, can be white. DotCode was developed to use with high-speed industrial printers where printing accuracy can be low. Because DotCode by the standard does not require complicated elements like continuous lines or special shapes it can be applied with laser engraving or industrial drills.

<span class="mw-page-title-main">Rectangular Micro QR Code</span> Type of matrix barcode

Rectangular Micro QR Code is two-dimensional (2D) matrix barcode invented and standardized in 2022 by Denso Wave as ISO/IEC 23941. rMQR Code is designed as a rectangular variation of QR code and has the same parameters and applications as original QR code. But rMQR Code is more suitable for the rectangular areas and has difference between width and height up to 19 in R7x139 version. In this way it can be used in places where 1D barcodes are used. rMQR Code can replace Code 128 and Code 39 barcodes with more effective data encoding.

References

  1. 1 2 GB/T (2007). "GB/T 21049-2007 "Chinese-sensible code"". www.chinesestandardslibrary.com (in Chinese). GB National Standard. GB/T 21049-2007.
  2. "中国物品编码中心 (The Article Numbering Center of China)". www.ancc.org.cn (in Chinese).
  3. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ISO/IEC (2021). "ISO/IEC 20830:2021 "Information technology Automatic identification and data capture techniques Han Xin Code bar code symbology specification"". iso.org. International Organization for Standardization(ISO). ISO/IEC 20830.
  4. Stefania Zocco. "QR codes in contemporary China: digital money and people's perception" (PDF). dspace.unive.it. Ca'Foscari University of Venice.
  5. 1 2 "GS1 Application Identifiers". www.gs1.org.
  6. Dong Xiaowen; Deng Huipeng; Wang Li (31 August 2021). "中国主导的首个二维码码制国际标准正式发布(The first international standard for QR code coding led by China is officially released)". www.ancc.org.cn (in Chinese). 中国物品编码中心 (The Article Numbering Center of China).
  7. "RFID and AIDC News: New Bar Code Symbology for Double Byte Characters". www.scdigest.com. Supply Chain Digest.
  8. "ISS Han Xin Code symbology specification - Rev. 3.0". aimglobal.org. AIM Global.
  9. Liu Jia (16 September 2015). "汉信码正式成为国际ISO标准工作项目(Hanxin code officially becomes an international ISO standard work item)". www.ancc.org.cn (in Chinese). 中国物品编码中心 (The Article Numbering Center of China).
  10. GB/T (2022). "GB/T 21049-2022 "Han Xin code"". www.chinesestandard.net (in Chinese). GB National Standard. GB/T 21049-2022.
  11. Shengzhang Jiang; Weidong Wu (2 August 2016). "European Patent Office EP3330887B1 by Fujian Landi Commercial Equipment Co Ltd "Chinese-sensitive code feature pattern detection method and system"". patents.google.com. European Patent Office.
  12. Shengzhang Jiang; Weidong Wu (15 January 2018). "United States Patent US10095903B2 by Ingenico Fujian Technology Co Ltd "Block decoding method and system for two-dimensional code"". patents.google.com. United States Patent and Trademark Office.
  13. Shengzhang Jiang; Weidong Wu (13 February 2018). "United States Patent US10528781B2 by Ingenico Fujian Technology Co Ltd "Detection method and system for characteristic patterns of Han Xin codes"". patents.google.com. United States Patent and Trademark Office.
  14. "Han Xin Code". www.ancc.org.cn. GS1 China.
  15. "PC42D Desktop Direct Thermal Barcode Printer". www.honeywell.com.
  16. "Unitech MS852B". dcs.aero.
  17. Shi Yu. "Han Xin Code". han-xin-code.appstor.io (in Chinese).
  18. Zheng Yu (2 September 2013). "中国的二维码,您用了吗(Have you used China's QR code)?". www.ancc.org.cn (in Chinese). 中国物品编码中心 (The Article Numbering Center of China).
  19. "Generate Han Xin Code Barcodes in C#". www.aspose.com.
  20. "AIM International Technical Specification - Han Xin Code Encoding Library for .Net". github.com.
  21. Xiaolei Yu; Donghua Wang; Zhimin Zhao (2018). Semi-physical Verification Technology for Dynamic Performance of Internet of Things System. Springer. p. 181. ISBN   978-9811317590.