是否可以使用文本创建二维码?

MCK*_*MCK 124 ascii qr-code utf-8

我见过的二维码大多是图片文件。但是您可以使用纯文本创建二维码吗?

例如 ASCII 和 UTF-8 将黑框作为字符。我可以将它们与空格一起使用来创建二维码吗?

Att*_*tie 180

是的!有一个名为的实用程序qrencode可以为您呈现这些。

二维码唯一真正重要的因素是二维阵列具有“更暗”和“更”的像素/段。它也可以着色,但对比度可能会成为一个问题。

ASCII码

您阅读此二维码的能力可能取决于相机的分辨率、距离和您使用的软件。

qrencode -t ASCIIi 'https://superuser.com/questions/1420001/is-it-possible-to-write-a-qr-code'
Run Code Online (Sandbox Code Playgroud)

注意:我使用了-t ASCIIi(Inverted ASCII) 因为我的终端是黑底白字。

ASCII 二维码

ANSI

此模式的工作原理是将背景颜色设置为黑色或白色,并打印一些空格字符。

qrencode -t ANSI 'https://superuser.com/questions/1420001/is-it-possible-to-write-a-qr-code'
Run Code Online (Sandbox Code Playgroud)

ANSI二维码

一些写入终端的原始字符如下所示,这些是ANSI 转义码。“转义”字符的值为0x1b并且通常可以写为\e.

  • \e[40m 将背景颜色设置为黑色
  • \e[47m 将背景颜色设置为白色
  • 0x20 是一个 ASCII 空间

ANSI 二维码原始

UTF-8

还有一种 UTF-8 模式 ( -t UTF8)。此模式使用“半块”字符来增加密度,并将行数减少一半。

  • ? - U+2580 / 上半块
  • ? - U+2584 / 下半块
  • ? - U+2588 / 整块

@grawity 截图(感谢)

qrencode -t UTF8 'https://superuser.com/questions/1420001/is-it-possible-to-write-a-qr-code'
qrencode -t ANSIUTF8 'https://superuser.com/questions/1420001/is-it-possible-to-write-a-qr-code'
Run Code Online (Sandbox Code Playgroud)

UTF-8 二维码

  • https://i.imgur.com/WQYkxYm.png https://i.imgur.com/KeDVJ16.png – 这使用“半块”字符`▄``▀``█`,可选颜色以增加对比度只要。(它们来自 Unicode 1.1 并且一直追溯到 IBM DOS;令人惊讶的是仍然有任何终端无法呈现这些......) (9认同)
  • @MuratKaçiran:Powershell 和 CMD 只是命令解释器(shell),它们都使用与终端相同的“Windows 控制台”。它在 Win10.18xx 中也得到了显着改进。过去,它根本不支持 UTF-8。它可以使用适当编写的程序通过 UTF-16 执行 Unicode,但这些程序必须故意使用特殊的 Unicode 模式。如果程序没有这样做,你得到的只是 MS-DOS 时代的 cp437 代码页......在这种情况下,`qrencode -t UTF8 | iconv -f utf8 -t cp437` 可能仍然有效,因为当时也存在相同的方框图。 (7认同)
  • 令我惊讶的是,我 iphone 上的 QR 阅读器应用程序成功地从我的屏幕上读取了所有这些,包括 ASCII `#` 一个。+1。 (7认同)
  • 不要忘记`-t UTF-8`模式,它使用OP提到的“盒子图”字符? (4认同)
  • @Attie:哦,我可能不小心选择了一些文本,所以它以反向文本显示了该行的一部分。 (3认同)