二维码基础学习指南

1.二维码基础原理

二维码生成原理及解析代码_二维码算法及原理-CSDN博客

2. 关于字符容纳的分辨

2.1 数字编码(Numeric Mode)


数字编码的范围为 0~9。
对于数字编码,统计需要编码数字的个数是否为 3 的倍数:如果不是 3 的倍数,则剩下的 1 位或 2 位会被转为 4bits 或 8bits(十进制转二进制),每三位数字都会被编成 10bits, 12bits, 14bits,具体编码长度仍然需要二维码尺寸决定。

2.2 字符编码(Alphanumeric Mode)

字符编码的范围有:

  • 数字 0~9;
  • 大写 A~Z(无小写);
  • 几个符号$ % * + - . / 和空格。

图中 Char 表示字符,Value 表示字符对应的索引值。
索引表中共 45 种对应关系,字符编码的过程,就是将每两个字符分为一组,然后转成上图 2.3 的 45 进制,再转为 11bits 的二进制结果。对于落单的一个字符,则转为 6bits 的二进制结果。
此外,根据上图 2.2 的设定,对不同 Version 的二维码使用 9/11/13 个二进制表示。

注:
上图 2.3 中的 SP 代表空格。

2.2.3 字节编码(Byte Mode)


可以是 0-255 的 ISO-8859-1 字符。有些二维码的扫描器可以自动检测是否是 UTF-8 的编码。
 

3. 二维码不同version对应的不同最大容纳字符数

qrcode共有40个版本,支持各种类型数据。个人一般统一转换成8位字节进行算法存储。(汉字 --uff8占用3个字节)

学习ASCII码详解 - 知乎 (zhihu.com)

Ascll完整码表(256个)_ascll码表-CSDN博客(包含扩展ascII)

在这里,可以简单考虑一下每种编码方式的区别asc的7位表示128个字符,8位编码标准,如ISO-8859和Unicode。UTF-8编码使用1到4个字节来表示不同的字符。对于ASCII字符(0-127),UTF-8编码使用单个字节与ASCII码完全兼容。对于非ASCII字符,UTF-8使用多个字节来表示对于包含汉字等非ASCII字符的文本,可以使用UTF-8编码将其转换为字节序列,每个汉字通常占用3个字节。

qrcode各版本/各类型容量支持表_二维码的版本与容量_squallonline8708的博客-CSDN博客

QR code各模式的数据容量_qrcode mode-CSDN博客

二维码(QRcode)容量的计算_21*21二维码能包含多少个字符-CSDN博客

4. 辨识二维码的容错率方法

12位,12全黑为L 7%,1黑2白为M 15%, 1白2黑为Q 25%, 12全白为H  30%

如何一眼看出二维码的纠错等级_潇潇-商业新知 (shangyexinzhi.com)

QR 二维码纠错码(三)-腾讯云开发者社区-腾讯云 (tencent.com)

5. 可信二维码

基于数字签名的可信二维码生成与认证方案研究 - 中国知网 (cnki.net)

每天都扫的二维码,你知道它的技术原理吗? - 掘金 (juejin.cn)

你知道什么是动态二维码吗? - 知乎 (zhihu.com)

揭秘共享单车背后的物联网技术 - 知乎 (zhihu.com)

字节二面:请你聊聊二维码登录原理 - 知乎 (zhihu.com)

6. flutter二维码使用指南

Flutter之实现生成二维码,扫描二维码——Flutter基础系列_flutter 二维码生成-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值