Все работает нормально, за исключением того, если в тексте QR-кода есть немецкое «Умлауте» (ÄÖÜäöü). Вот пример программы для демонстрации/изолирования проблемы:
Код: Выделить всё
import cv2 # Read image / camera/video input
from pyzbar.pyzbar import decode
img = cv2.imread ("GiroCodeUmlaute.PNG")
print (decode (img))
for code in decode (img):
print (code.type)
print (code.data.decode ("UTF-8"))
GiroCodeUmlaute.PNG -> см. генератор QR-кода
6-я строка закодированный текст QR-кода содержит «Ärzte ohne Grenzen».
Но когда он декодирован с помощью «UTF-8» (который является правильным символом set), то отображается «テвzte ohne Grenzen».
Я думаю, что декодированные считанные шестнадцатеричные данные выглядят немного странно:
[Decoded(data=b'BCD\n002\n1\nSCT\nRLNWATWW\n\xef\xbe\x83\xd0\xb2zte без Гринзена...
Откуда берутся 4(!) шестнадцатеричных байта? \xef\xbe\x83\xd0\xb2zte
Где 'r' в исходном тексте?
Та же проблема возникает, если эта тестовая программа запущена на компьютере Raspberry.
Если этот образец QR-кода сканируется мобильным приложением для Android, «Умлаут» отображается правильно.
/>
С моей точки зрения, это похоже на проблему модуля «pyzbar». Но, может быть, я делаю что-то не так?
Каждая помощь и совет приветствуются!
Спасибо п>
Подробнее здесь: https://stackoverflow.com/questions/705 ... ith-pyzbar