Zxing项目是一个著名的开源、多格式1D/2D条形码图像处理库,使用Java实现,并具备其他语言的端口。但我相信有一些人和我遇到了同样的问题:我无法在QR码中编码UTF-8字符。
如何使用Zxing项目在QR码中编码UTF-8字符?
Zxing项目是一个著名的开源、多格式1D/2D条形码图像处理库,使用Java实现,并具备其他语言的端口。但我相信有一些人和我遇到了同样的问题:我无法在QR码中编码UTF-8字符。
如何使用Zxing项目在QR码中编码UTF-8字符?
正确的做法是使用提示:
Hashtable hints = new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
然后在QRCodeWriter
类中调用这个版本的encode
方法:
encode(String contents, BarcodeFormat format, int width, int height,Hashtable hints)
DecodeHintType.CHARACTER_SET
作为键放入提示的哈希表中,并将其传递给MultiFormatReader
。 - Mister Smith史密斯先生的解答是正确的。但有些情况下你需要使用小写的 utf-8
而不是大写的 UTF-8
来与 ZXing
进行编码。否则一些扫描器如支付宝将无法读取。
Hashtable hints = new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
我发现有一个更简单的API:
.withCharset("utf-8")
例子:
Bitmap bitmap = QRCode.from([string])
.withSize([width], [height])
.withCharset("utf-8")
.bitmap();
QRCode
但是没有看到 from()
方法,你从哪里得到的? - Sam Chen