You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何阻止Google Chart API截断二维码内容末尾的换行符?

解决Google Chart API截断二维码末尾换行符的问题

我之前也踩过这个坑!Google Chart API确实会自动忽略内容末尾的空白字符(包括换行符%0D%0A),哪怕你加一堆换行也没用——它会直接把这些末尾的空白全部截断,导致生成的二维码内容不带换行。这里有几个实用的解决办法:

方法1:添加零宽度空格(最简便)

在末尾的换行符后面加一个零宽度空格(URL编码为%E2%80%8B),这个字符不会显示,也不会影响文本的实际使用,但能让Google Chart API认为内容还没结束,从而保留前面的换行符。

示例链接:

https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=qr_1a146dbd-c799-41c3-ad3d-ce50a5804e49%0D%0A%E2%80%8B&choe=UTF-8&chld=H

扫码后你会发现,末尾的换行符被完整保留,而零宽度空格几乎不会被察觉(大部分文本解析工具会忽略它,或者不会显示出来)。

方法2:换用本地/其他QR码生成工具

如果对内容的纯净度要求极高(不想加任何额外字符),可以放弃Google Chart API,改用本地生成工具,比如Python的qrcode库,或者ZXing的离线工具。

举个Python的例子:

import qrcode

# 带末尾换行的内容
qr_content = "qr_1a146dbd-c799-41c3-ad3d-ce50a5804e49\r\n"
# 生成二维码
qr_img = qrcode.make(qr_content)
# 保存图片
qr_img.save("my_qr_with_newline.png")

这种方式完全由你控制内容,不会有任何自动截断的问题。

方法3:添加可见空白字符(不推荐)

如果实在不想换工具,也可以在换行后加一个普通空格(URL编码%20),但这样扫码后内容末尾会多一个空格,需要后续处理去掉。这个方法不如零宽度空格优雅,只适合对内容格式要求不严格的场景。

内容的提问来源于stack exchange,提问作者KoSMoS

火山引擎 最新活动