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

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

(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)

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

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注