使用zxing生成正确的qr码的问题

时间:2011-07-13 13:22:36

标签: java qr-code zxing

我在使用zxing api生成正确的qr代码时遇到问题。 我能够生成一个qr-code但是当我读到qr-code时,那些像“äü”这样的字符显示不正确。

代码:

BitMatrix matrix = writer.encode(text, BarcodeFormat.QR_CODE, 200,200);
//text is String text = "geändert";

bufferedImage = MatrixToImageWriter.toBufferedImage(matrix);

如果我以“ü”开头,然后是“äö”,那么它显示正确 有谁知道为什么?

4 个答案:

答案 0 :(得分:2)

您可以从以下代码中阅读zxing api的QR码。

binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(ImageIO.read(new FileInputStream("QR_Code.JPG")))));
        result = new MultiFormatReader().decode(binaryBitmap);
        System.out.println("QR Code : "+result.getText());

答案 1 :(得分:1)

如果你看一下zxing http://code.google.com/p/zxing/wiki/DeveloperNotes的开发者文档,你会发现他们明确地谈到了基于非拉丁语字符的问题。

由于QR码标准没有定义在QR码中特定字符编码的确切方法,因此建议仅使用出现在所有三种标准编码中的字符(ISO-8859-1,ISO-8859-15, UTF-8)

答案 2 :(得分:1)

在传递编码器的Hashtable提示中,将EncoderHintType.CHARACTER_SET设置为"UTF-8"。 Barry的回答是正确的,但强迫它尝试使用UTF-8可能会更适合你。

答案 3 :(得分:1)

您可以从以下代码中阅读zxing api的QR码。

binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(ImageIO.read(new FileInputStream("QR_Code.JPG"))))); 

result = new MultiFormatReader().decode(binaryBitmap); 

System.out.println("QR Code : "+result.getText());