Han Xin code contains Reed–Solomon error correction with ability to read corrupted images.
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.
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 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.
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.
Han Xin code version size can be calculated with the following formula:
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.
Below you can see examples of Han Xin code with different Alignment pattern placement.
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.
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.
The following table shows mask pattern algorithms (which is placed to Structural Information Region).
[3]: 5.6.2 Han Xin code data is encoded as byte array.
(С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).
The following table demonstrates abilities to encode data with different barcode version and error correction level.
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.
Han Xin code GS1 mode[3]: 5.4.13 is an indicator that the represented data is defined by GS1 General Specification.
URI mode can encode data in three charsets: URI-A, URI-B, URI-C[3]: Annex M with own sub-mode terminators.