本页介绍如何在二维码中使用汉字模式编码。
仅适用于双字节移位 JIS 字符
日文汉字模式只能编码双字节移位 JIS 字符,这些字符字节的范围为 0x8140 到 0x9FFC 和 0xE040 到 0xEBBF(十六进制)。这些字符可以在Rikai的Shift JIS汉字代码表中找到。
转换为字节
要在二维码日文汉字模式下对双字节移位 JIS 字符进行编码,这些字符必须首先转换为字节。例如,字符 “茗荷” 可以按如下方式转换。
茗 → 0xE4AA
荷 → 0x89D7
使用汉字模式对字节进行编码
日文汉字模式有两种编码双字节汉字字符的方法。 一种方法是用于字节在 0x8140 到 0x9FFC内的字符。另一种方法是用于字节在0xE040到0xEBBF范围内的字符。下面概述了这两种方法。
对于字节在 0x8140 到 0x9FFC 范围内的字符
从上面的示例中,字符 “荷” 在移位 JIS 中的字节为0x89D7,因此它在范围0x8140到 0x9FFC中。第一步是从十六进制值中减去0x8140。 在此示例中:
0x89D7 - 0x8140 = 0x0897
结果是0x0897。将该数字拆分为最高有效字节和最小字节有效字节:
- 0x0897 的最高有效字节为 0x08
- 0x0897 的最低有效字节为 0x97
接下来,将最高有效字节乘以 0xC0,然后将最低有效字节添加到结果中:
(0x08 × 0xC0) + 0x97 = (0x600) + 0x97 = 0x697
最后,将该结果转换为 13 位二进制位串:
0x697 = 0 0110 1001 0111
对于字节在 0xE040 到 0xEBBF 范围内的字符
从上面的例子中,字符 “茗” 在移位 JIS 中的字节为0xE4AA,因此它在 范围0xE040到0xEBBF中。第一步是从十六进制值中减去0xC140。 在此示例中:
0xE4AA - 0xC140 = 0x236A
结果是0x236A。将该数字拆分为最高有效字节和最小字节有效字节:
- 0x236A的最高有效字节是0x23
- 0x236A的最低有效字节是0x6A
接下来,将最高有效字节乘以 0xC0,然后将最低有效字节添加到结果中:
(0x23 × 0xC0) + 0x6A = (0x1A40) + 0x6A = 0x1AAA
最后,将该结果转换为 13 位二进制串:
0x1AAA = 1 1010 1010 1010
将 13 位二进制数放在一起
要编码的字符串是 “茗荷”。在上述步骤中,这两个字符被转换为13位二进制串。把这两个二进制字符串放在一起,完成编码。
二维码编码的“茗荷”的编码结果为:11010101010100011010010111
下一篇: 完成数据编码步骤
按照数据编码页面上的说明根据需要添加任何剩余位。