python 二维码;二维码乱码;

facility_QR_parser(img_path)

识别学校设备二维码的信息,并返回字符串。
陈光耀;唐韧之

  1. # pip install pyzbar
  2. from pyzbar.pyzbar import decode
  3. # pip install Pillow
  4. from PIL import Image
  5. # paser the qr code of facilities
  6. # input
  7. # str: img_path, the qr image path
  8. # return the parser result (string)
  9. def facility_QR_parser(img_path):
  10. QRimg = Image.open(img_path)
  11. barcodes = decode(QRimg)
  12. for barcode in barcodes:
  13. url = barcode.data.decode('utf-8')
  14. # print(url)
  15. # 转成utf-8会乱码,经玄学操作,我们决定。
  16. # 玄学秘籍:http://mytju.com/classcode/tools/messyCodeRecover.asp
  17. # 注意这里“现在编码”和“原来编码”需要反复细品
  18. # 也就是说,encode和decode方向来回都试一下
  19. # 比如对于:¿ªÃÅÎļþ¹ñ
  20. # 原来编码写的是'gbk',现在编码写的是'iso-8859-1'
  21. # 我们先转了'gbk',之后转'iso-8859-1',但是还是失败
  22. # 这里先转'iso-8859-1',再转'gbk'
  23. url = bytes(url, encoding = 'iso-8859-1')
  24. url = url.decode('gbk')
  25. return url
  26. print(facility_QR_parser("65ae5bc67c52a356a471bb8b799e633.jpg"))

main()

还没写,到时候看需求写。