2016-07-15 4 views
1

Кто-нибудь знает, есть ли способ получить необработанные двоичные данные QR-кода с использованием API видения android? QR-коды, которые я читаю, содержат в них двоичные данные (включая символы NUL), но они построены с 8-битовым кодированием, поэтому имеется полный бинарный блок данных. Объект Barcode возвратил очень полезную строку «Неизвестная кодировка» в поле rawValue вместо моих двоичных данных? Спасибо за любые идеи!QR-коды - необработанные двоичные данные

+0

Удалось ли вам решить эту проблему без изменения ваших кодов QR? Я столкнулся с одной и той же проблемой, но я не могу изменять коды, как вы это делали ... – vojta

+0

Нет, к счастью для меня, я мог бы модифицировать программное обеспечение, генерирующее коды. Это заставило его работать, как я ожидал. –

ответ

1

Чтобы ответить на мой собственный вопрос, кажется, что оба вида android vision и zxing библиотеки преобразуют байты в utf8, если кодировка не указана в QR-коде (или оставлена ​​по умолчанию). Я думал, что кодировка по умолчанию - ISO8859-1, но библиотеки этого не предполагают. QR-код был сгенерирован с использованием libqrencode в linux. Установка заголовка ECI в 1 в QR-коде при генерации заставляет библиотеки андроида сохранять двоичные данные. Итак, чтение массива байтов с barcodes.valueAt(0).displayValue.getBytes("iso-8859-1"); возвращает точные закодированные байты.

+0

Я использую тот же генератор QR-кода, что и вы, libqrencode, и у меня такая же проблема, но я не понимаю. Где вы меняете заголовок ECI на 1? – sh5164

Смежные вопросы