2016-07-15 105 views
1

有誰知道是否有方法使用android vision API獲取QR碼的原始二進制數據? 我正在閱讀的QR碼中有二進制數據(包括NUL字符),但它們都是用8位編碼構建的,所以完整的二進制數據塊就在那裏。 Barcode對象非常有用地返回rawValue字段中的字符串「Unknown encoding」,而不是我的二進制數據? 感謝您的任何想法!QR碼 - 原始二進制數據

+0

您是否設法在不更改QR碼的情況下解決此問題?我面臨着同樣的問題,但我不能像以前那樣更改代碼... – vojta

+0

不,幸運的是,我可以修改生成代碼的軟件。這使它按我的預期工作。 –

回答

1

爲了回答我自己的問題,如果未在QR碼中指定編碼(或默認保留),則似乎android vision和zxing庫都會將字節轉換爲utf8。我認爲默認的編碼是ISO8859-1,但是這些庫不會這樣做。 QR代碼是在linux中使用libqrencode生成的。生成QR碼時將ECI標題設置爲1會導致android庫保留二進制數據。 因此,用barcodes.valueAt(0).displayValue.getBytes("iso-8859-1"); 讀取字節數組將返回確切的編碼字節。

+0

我使用的是與您相同的QR碼生成器,libqrencode,而且我有同樣的問題,但我不明白。你在哪裏將ECI標題更改爲1? – sh5164

相關問題