MCK Asked: 2019-04-02 06:32:14 +0800 CST2019-04-02 06:32:14 +0800 CST 2019-04-02 06:32:14 +0800 CST 是否可以使用文本创建二维码? 772 我见过的二维码大多是图片文件。但是您可以使用纯文本创建 QR 码吗? 例如 ASCII 和 UTF-8 以黑框作为字符。我可以将它们与空格一起使用来创建二维码吗? utf-8 qr-code ascii 2 个回答 Voted Best Answer Attie 2019-04-02T06:54:48+08:002019-04-02T06:54:48+08:00 是的!有一个名为的实用程序qrencode可以为您呈现这些。 QR 码唯一真正重要的因素是二维阵列具有“较暗”和“较亮”的像素/段。它也可以着色,尽管对比度可能开始成为一个问题。 ASCII码 您读取此二维码的能力可能取决于摄像头的分辨率、距离和您使用的软件。 qrencode -t ASCIIi 'https://superuser.com/questions/1420001/is-it-possible-to-write-a-qr-code' 注意:我使用-t ASCIIi(Inverted ASCII) 因为我的终端是黑底白字。 美标 此模式的工作原理是将背景颜色设置为黑色或白色,并打印一些空格字符。 qrencode -t ANSI 'https://superuser.com/questions/1420001/is-it-possible-to-write-a-qr-code' 写入终端的一些原始字符如下所示,这些是ANSI escape codes。“转义”字符的值为 ,0x1b通常可以写为\e。 \e[40m将背景颜色设置为黑色 \e[47m将背景颜色设置为白色 0x20是一个ASCII空间 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' Michael Altfield 2021-03-24T13:15:21+08:002021-03-24T13:15:21+08:00 Attie 的回答qrencode很好,但出于某种原因,它总是输出一个我的 Barcode Scanner 应用程序无法读取的反色二维码。 反转 UTF-8 输出并非易事,所以我想我会把它留给其他人使用;) qrencode=`qrencode -t UTF8 "https://superuser.com/q/1420001/551559"` echo "${qrencode}" # replace black qrencode=$(echo "${qrencode}" | sed s/`echo -e '\xe2\x96\x88'`/A/g) echo "${qrencode}" # replace white qrencode=$(echo "${qrencode}" | sed s/\ /B/g) echo "${qrencode}" # swap black for white qrencode=$(echo "${qrencode}" | sed s/A/\ /g) echo "${qrencode}" # swap white for black qrencode=$(echo "${qrencode}" | sed s/B/`echo -e '\xe2\x96\x88'`/g) echo "${qrencode}" # replace "Upper Half Block" qrencode=$(echo "${qrencode}" | sed s/`echo -e '\xe2\x96\x80'`/A/g) echo "${qrencode}" # replace "Lower Half Block" qrencode=$(echo "${qrencode}" | sed s/`echo -e '\xe2\x96\x84'`/B/g) echo "${qrencode}" # swap upper for lower qrencode=$(echo "${qrencode}" | sed s/A/`echo -e '\xe2\x96\x84'`/g) echo "${qrencode}" # swap lower for upper qrencode=$(echo "${qrencode}" | sed s/B/`echo -e '\xe2\x96\x80'`/g) echo "${qrencode}" 我使用它以便我可以使用二维码对 utf-8 纯文本消息进行加密签名,并以 html 格式将其显示在我的网站上。 为了在不破坏 qr 代码行间距的可读性的情况下实现这一点,我将 qr 代码放在<pre>具有 css 样式的块中,如下所示: <pre style="line-height:1em; letter-spacing: -1px; font-size: x-large;"> ... </pre> 有关实时示例,请参见 https://email.michaelaltfield.net
是的!有一个名为的实用程序
qrencode
可以为您呈现这些。QR 码唯一真正重要的因素是二维阵列具有“较暗”和“较亮”的像素/段。它也可以着色,尽管对比度可能开始成为一个问题。
ASCII码
您读取此二维码的能力可能取决于摄像头的分辨率、距离和您使用的软件。
注意:我使用
-t ASCIIi
(Inverted ASCII) 因为我的终端是黑底白字。美标
此模式的工作原理是将背景颜色设置为黑色或白色,并打印一些空格字符。
写入终端的一些原始字符如下所示,这些是ANSI escape codes。“转义”字符的值为 ,
0x1b
通常可以写为\e
。\e[40m
将背景颜色设置为黑色\e[47m
将背景颜色设置为白色0x20
是一个ASCII空间UTF-8编码
还有一种 UTF-8 模式 (
-t UTF8
)。此模式使用“半块”字符来增加密度,并将行数减少一半。来自@grawity 的截图(感谢)
Attie 的回答
qrencode
很好,但出于某种原因,它总是输出一个我的 Barcode Scanner 应用程序无法读取的反色二维码。反转 UTF-8 输出并非易事,所以我想我会把它留给其他人使用;)
我使用它以便我可以使用二维码对 utf-8 纯文本消息进行加密签名,并以 html 格式将其显示在我的网站上。
为了在不破坏 qr 代码行间距的可读性的情况下实现这一点,我将 qr 代码放在
<pre>
具有 css 样式的块中,如下所示:有关实时示例,请参见