Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support decoding of binary QR codes #82

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

KlaasJelmer
Copy link

When the ZBar decoder encounters binary data, it guesses the data encoding while converting it to text. This behavior destroys other types of data.

Version 0.23.1 of the ZBar library supports decoding binary QR codes using configuration option ZBAR_CFG_BINARY. This PR allows settings this flag from the decode() function

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.2%) to 97.877% when pulling 2b12b68 on KlaasJelmer:master into 833b375 on NaturalHistoryMuseum:master.

outofmemo pushed a commit to outofmemo/pyzbar that referenced this pull request Apr 18, 2021
libzbar support raw binary data since 0.23.1. See more: mchehab/zbar@59e0ed1

Refer to KlaasJelmer's modification to add configuration option ZBAR_CFG_BINARY to pyzbar. See more: NaturalHistoryMuseum#82
And modify the conversion method of symbol data to support binary data.
@nmccann nmccann mentioned this pull request Nov 17, 2021
@maglub
Copy link

maglub commented Apr 17, 2024

Is there a good way to get attention to this pull request?

This would be quite a nice and useful workaround for issues in Europe, where the base library zbar mis-interprets the encoding:

My workaround for now is the following, which could be avoided if one could just get the binary representation of the QR codes:

  try:
    logging.info("  - Trying the ugly workaround to re-encode utf-8 to big5, then back to utf-8")
    logging.info(res[0].data.decode('utf-8').encode('big5'))
    return res[0].data.decode('utf-8').encode('big5').decode('utf-8')
  except:
    logging.info("  - Re-encoding failed, so the qrcode is probably ok already in utf-8")
    logging.info(res[0].data.decode('utf-8'))
    return res[0].data.decode('utf-8')

@pauuser
Copy link

pauuser commented May 9, 2024

Getting the same issue. Hope this pull request gets more attention as soon as possible!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants