如何使用Zxing项目在QR码中使用UTF-8编码字符?

时间:2012-03-23 08:01:12

标签: java android qr-code zxing

Zxing Project是一个着名的开源,多格式1D / 2D条码图像处理库,用Java实现,具有其他语言的端口。但我相信有人像我一样有同样的问题:我无法在Qrcode中编码UTF-8字符。

如何使用Zxing项目在QR码中使用UTF-8编码字符?

3 个答案:

答案 0 :(得分:12)

这样做的正确方法是使用提示:

  Hashtable hints = new Hashtable();
  hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");

然后在encode类中调用此版本的QRCodeWriter

  encode(String contents, BarcodeFormat format, int width, int height,Hashtable hints)

答案 1 :(得分:3)

史密斯先生的回答非常正确。但是,在使用utf-8进行编码时,您需要使用小写UTF-8而不是大写ZXing。或者某些扫描仪如支付宝无法读取它。

Hashtable hints = new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");

答案 2 :(得分:0)

我发现有一个更简单的API:

.withCharset("utf-8")

示例:

Bitmap bitmap = QRCode.from([string])
                   .withSize([width], [height])
                   .withCharset("utf-8")
                   .bitmap();