关于QR二维码的编码模式
编码模式,大体定义如下:
typedef enum {
QR_MODE_NUL = -1,///< Terminator (NUL character).
Internal use only
QR_MODE_NUM = 0,///< Numeric mode
QR_MODE_AN,///< Alphabet-numeric mode
QR_MODE_8,///< 8-bit data mode
QR_MODE_KANJI,///< Kanji (shift-jis) mode
QR_MODE_STRUCTURE, ///< Internal use only
QR_MODE_ECI,///< ECI mode
QR_MODE_FNC1FIRST,///< FNC1, first position
QR_MODE_FNC1SECOND, ///< FNC1, second position
} QRencodeMode;
举个例子,比如我编码的内容都是数字,就用QR_MODE_NUM,
比如用到中、日、韩文,就用KANJI
根据字符值和分配到默认 ECI 相关定义那些下面的模式。
如果通过另一个 ECI,优化数据压实模式应使用的字节值,
而不是特定字符赋值。例如,如果从 30HEX 到 39 十六进制和
紧凑的字节值默认的字节值的数字或字母的等价物,应使用数字模式。
扩展的通道解释 (ECI) 模式
扩展的通道解释协议,定义在目标公司允许的输出数据流的解释不同
于默认字符集。ECI 协议在其他符号码有一个一致的定义。
ECI 提供解释的字节值,打印之前和之后在细节中编码方法。
微 QR 码符号不支持 ECI 协议。定义默认解释 QR 代码
2005 年 ECI 000003 代表 ISO/IEC 8859-1character 套。
使用其他字符集的国际应用程序应使用 ECI 协议。例如,默认解释的
QR 码是 ECI 000020,代表 JIS 8 和 shift JIS 字符集。
ECI 模式可以镶嵌 ECI 转义序列在这一点在数据中后, 紧接着按
另一个模式指示器 (例如: 高效的数据编码) 和剩余生效直到结尾
的消息或随后的 ECI 模式指示器。
数值模式
数值模式是方式编码十进制数字 0 ~ 9 (从 30 十六进制 ASCII 39
十六进制)。通常情况下,10 位代表 3 个字符。
字母数字模式
字母数字模式是进行编码字符集的 45 个字符,包括数字 0-10 的方法
~ 9 (ASCII 是从 30HEX 到 39 十六进制),26 个英文字母 A ~ Z
(ASCII 是从 41 十六进制到 5A 十六进制) 和 9 符号 SP,
$,%,*,+,-,。,,: (ASCII 是 20HEX、 24hex、 25HEX、 2A 2B
十六进制,二维六角、 2E 十六进制,2F 十六进制十六进制 3A 六角分别)。
通常情况下,11bits 表示两个输入的字符。版本 M1 微 QR 码符号不支持
字母数字模式。
字节模式
在字节模式下,数据在每个字符 8 位编码。例如,可能为这种模式在封
闭系统国家或特定于应用程序实现 QR 代码 2005 年指定替代 8 位字符
集定义在 ISO/IEC 8859 适当 par。当指定替代的字符集,如果当事人想
要读取 QR 代码 2005年符号时,应通知适用的字符集中指定的应用程序或
通过双边协议。微 QR 码符号版本 M1 或 M2 不支持这种模式。
日文汉字模式
这种模式将根据 JIS 系统基于 JIS X 0208 日文汉字字符编码。
从 JIS X 2008 转换 JIS 值。详见 JIS X 0208 移编码表示形式。
13 位二进制码字表示每个双字节字符值。如果指定的 8 位字节模式的
字符集汉字模式可能则采用不毫不含糊地使用的字节值在范围 81HEX 至
9FHEX 和/或 E0HEX 到 EBHEX。那是因为阅读系统不是能够确定从传送
的数据是否这种字节值是一个双字节字符前导字节。当适当的序列的字
节值数据中发生时,使用汉字模式压实规则可能实现较短的码流。
(即前导字节在范围 81HEX 至 9FHEX 或 E0HEX,其后拖车字节在范围
40HEX 至 FCHEX,除了 7FHEX,EBHEX 或 EBHEX,其后 40HEX 至 BFHEX)。
M1 或 M2 微 QR 码符号版本不支持日文汉字模式。
混合模式
QR 代码 2005年可以编码序列的混合所有模式上面所描述的数据。
微 QR 代码 2005年符号可以编码序列的混合数据由任何可用以上模式描述
结构化的追加模式
此模式用于拆分数据文件来表示序列的几个 QR 代码符号,要求所有的符
号都可以读取和重建正确的顺序。每个符号必须要表明的长度此序列以及符
号的位置,并检查所有的可读符号属于同一文档的结构化追加标头。
微 QR 码符号不支持结构追加模式。
FNC1 模式
这种模式对特定行业或应用程序数据格式符号进行编码。在"第一的位置",
它指示符号一般规范。在"第二的位置",它表示特定的数据格式根据目标公司
FNC1 模式是提供给整个符号和不受后续模式指标。请注意"第一的位置"和
第二的位置"基于字符的位置在代码 128 符号,等效的方式使用时不实际位置
。微 QR 码符号不支持 FNC1 模式。
推荐阅读
- CVE-2020-16898|CVE-2020-16898 TCP/IP远程代码执行漏洞
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- 四首关于旅行记忆的外文歌曲
- 醒不来的梦
- 不废话,代码实践带你掌握|不废话,代码实践带你掌握 强缓存、协商缓存!
- 关于自我为中心的一点感想
- 工具|后天就是七夕节,你准备好了吗(送上几个七夕代码,展示你技能的时候到了!)
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- Android事件传递源码分析
- 关于Ruby的杂想