二维码里面究竟藏了什么? / 所谓常识

因为微信的存在,二维码在中国很常见,一堆黑色的方块的组合,不会被人觉得是奇怪的东西。然而里面的一些学问或许你还不知道。

(1) 二维码里面究竟藏了什么?

实际上,每个二维码代表着一串文字。它真的只是一维码的升级。这里也不讲原理了,反正应该也没人能看着一个二维码,就分析出里面的内容。

既然二维码只是一串文字,为什么扫描之后,有的二维码能打开网页,有的二维码能关注公众号,而有的二维码“什么都做不了”呢?

要想让二维码能够被程序用起来,这串文字自然得是有规范的。很多程序会把 URL 作为规范来用。你熟悉的网址,那个 http,就是 URL 的一种了。

其实 URL 有很多变种,比如:

  • tel:+8610110 代表北京 110 的电话
  • mailto:i@zhihu.com 是知乎管理员的邮箱
  • ed2k://|file|cn_windows_10_multiple_editions_x64_dvd_6848463.iso|4303300608|94FD861E82458005A9CA8E617379856A|/ 代表用特定下载器才能下载的文件

基本上,能扫二维码的软件,都可以支持这些 URL 前缀,因为实际上这些前缀的功能,都是操作系统管理的。而 http 可以看网页,任何平台上都有浏览器,所以很多二维码都是指到网页去,这样比较通用。

比如微信的二维码,实际上就是个网址,但在微信里面扫码的时候,微信会把里面的编号、功能的信息提取出来,不开网页,而是打开软件的某个功能。如果你不在微信里扫描,别的软件不认识微信的网址,自然就打开网页,代替 App 的功能了。

(2) 为什么某些二维码必须要用指定的软件扫描

很多软件能扫二维码,说明二维码本身已经有一个被广泛接受的标准。然而你或许也知道,微信的二维码必须得在微信里扫描,否则就会永远打开一个网页,提示你下载微信。

你可能会认为这是一个技术问题。然而隔壁支付宝的二维码,你用非支付宝的软件扫描,只要不在微信里扫描,都能打开支付宝的软件,然后跳转到对应的功能。

所以微信的二维码少了什么呢?微信和支付宝的二维码实际上都是网址,在不支持的软件里扫描,就会打开一个网页。支付宝在这个网页里,会尝试调起支付宝的手机 App,或者有的操作系统可以不用经过浏览器就打开对应的程序。而微信呢,这些功能都没做,打开那个网页,只会傻傻地提示你下载微信,不会试着打开微信。

感受到微信的封闭体系了吗?当然了微信这么做可能有防止滥用的考虑,但是好好一个互联网,居然“网址”也不互通,还能叫互联吗?

(3) 二维码的技术是日本的!哦。

现在主流使用的二维码标准,来自日本的一家公司。按照他们网站的说法,二维码的缘由是“条形码最大的缺点是一个条码只能容纳 20 个字母的信息,而一些日本客户希望条码里能容纳日文啥的”。

这项技术在现在是 ISO 国际标准,大家都可以免费使用,不过有人指出,这家公司可以独家恢复损毁得有点厉害的二维码内容,所以他们还是掌握核心科技。

国内曾经有一些项目就抓着这一点,做出了有自主知识产权的条码标准。然而,没人用。

一种标准成熟的标志,是用的人多。比如,美国邮政就有自己的一种条形码的规范,用来处理邮件。全国范围,又是封闭的邮政系统里强制使用,这种条码标准自然还能存活下来。

Intelligent Mail Barcode(图片来自 Wikipedia)

现在的二维码,在很多平台上都有现成的扫描程序,还是开源的,程序员拿来改改就能用,当然喜欢啦。支持扫描的程序多,二维码更容易用,就更不用说了。

所以,不管这个技术是谁做出来的,只要足够开放,能够为我所用,就该拿去用。现在世界是个地球村,学到别人好的东西,自己才能有确立新标准的能力嘛。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)