Проблемы с генерацией правильного qr-кода с помощью zxing

у меня проблема с созданием правильных qr-кодов с помощью zxing API. Я могу сгенерировать qr-код, но когда я читаю qr-код, символы типа «äü» отображаются неправильно.

код:

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

bufferedImage = MatrixToImageWriter.toBufferedImage(matrix);

Если я начну с «ü», а затем «äö», то он будет отображаться правильно, кто-нибудь знает, почему?


person testerws    schedule 13.07.2011    source источник
comment
Вы уверены, что неправильный QR-код, а не то, что вы используете для его декодирования?   -  person Jon Skeet    schedule 13.07.2011
comment
да, я уже пробовал считыватель кода 3 qr на iphone   -  person testerws    schedule 13.07.2011
comment
Я написал ответ, используя zxing для создания QR-кода в Stack Overflow: qr-code -интеграция-в-jasperreport. Если соответствует вашим требованиям, вы можете использовать его.   -  person Kamal Singh    schedule 20.11.2017


Ответы (4)


Вы можете прочитать QR-код из zxing API из кода ниже.

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());
person Keval Trivedi    schedule 18.03.2013

Если вы посмотрите на документацию разработчика от zxing http://code.google.com/p/zxing/wiki/DeveloperNotes вы увидите, что они прямо говорят о проблеме с нелатинскими символами.

Поскольку стандарт QR-кода не определяет точный способ указания кодировки символов в QR-коде, рекомендуется использовать только символы, которые встречаются во всех трех стандартных кодировках (ISO-8859-1, ISO-8859-15, UTF-8). )

person Barry    schedule 13.07.2011

В Hashtable подсказок, которые вы передаете кодировщику, установите EncoderHintType.CHARACTER_SET на "UTF-8". Ответ Барри правильный, но заставить его попробовать UTF-8 может оказаться лучше для вас.

person Sean Owen    schedule 13.07.2011
comment
спасибо, Шон, за подсказку с хеш-таблицей!! мне также пришлось добавить спецификацию UTF-8 в строку, но теперь это работает! огромное спасибо - person testerws; 14.07.2011

Вы можете прочитать QR-код из zxing API из кода ниже.

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());
person Pratik Butani    schedule 18.03.2013