在字节模式下,数据字符串由模式指示器、字符计数指示器和输入文本的原始字节组成。
转换为 ISO 8859-1 或 UTF-8
字节模式的默认字符集是ISO 8859-1,在可能的情况下,你应该将你的输入文本转换为这个字符集。二维码规范讨论了ECI模式,它允许你指定一个不同于ISO 8859-1的字符集,但一些二维码阅读器不理解ECI转义序列。
如果输入字符串中有不能用ISO 8859-1编码的字符,您可能可以用UTF-8编码代替,因为一些二维码阅读器能够检测并正确显示字节模式下的UTF-8编码,而不需要任何ECI转义序列。
为了解决这个问题,您可能希望测试不同的二维码阅读器,以了解他们如何处理字节模式下的非ISO 8859-1字符,或者要求您的用户提供关于他们使用的二维码阅读器的反馈。
将字符串拆分为 8 位字节
在将输入字符串转换为ISO 8859-1,或UTF-8(如果您的用户使用的二维码阅读器可以在字节模式下识别它)之后,您必须将字符串分成8位字节。
例如,我们将使用输入字符串 "Hello, world!"来创建一个版本1的二维码。由于它包含小写字母、逗号和感叹号,所以不能用字母数字模式进行编码,因为字母数字模式不包括小写字母、逗号和感叹号。
转换为十六进制字节的示例字符串:
H | 0x48 |
e | 0x65 |
l | 0x6c |
l | 0x6c |
o | 0x6f |
0x2c | |
0x20 | |
w | 0x77 |
o | 0x6f |
r | 0x72 |
l | 0x6c |
d | 0x64 |
! | 0x21 |
将每个字节转换为二进制
将字节转换为 8 位二进制字符串。如果不足8位,在左侧用 0 填充。
每个字节转换为 8 位二进制字符串的示例:
H | 0x48 | 01001000 |
e | 0x65 | 01100101 |
l | 0x6c | 01101100 |
l | 0x6c | 01101100 |
o | 0x6f | 01101111 |
0x2c | 00101100 | |
0x20 | 00100000 | |
w | 0x77 | 01110111 |
o | 0x6f | 01101111 |
r | 0x72 | 01110010 |
l | 0x6c | 01101100 |
d | 0x64 | 01100100 |
! | 0x21 | 00100001 |
下一篇: 完成数据编码步骤
按照数据编码页面上的说明根据需要添加任何剩余位。