使用zbar从QR码中提取二进制数据

时间:2016-02-03 16:45:43

标签: ios encoding qr-code zbar zbar-sdk

我试图用zbar从QR码中提取二进制数据(QR码最初是使用传递NSData对象的iOS SDK编码的)。不幸的是,ZBarSymbol类仅提供NSString成员中的内容。尝试使用NSISOLatin1StringEncoding从中提取NSData似乎有效,但在某些情况下仍然失败。

我在zbar实现中看到可以访问包含指向char的指针的zbar_symbol_t类型的对象。通过调查,它似乎包含原始内容,但有一些额外的数据,这是一个例子:

Original data: 9e7328c16bca3aaff532440917e4df6e155b96bd
Data in zbar_symbol_t: c29e7328c3816bc38a3ac2afc3b532440917c3a4c39f6e155bc296c2bd

任何知道zbar_symbol_t中究竟是什么数据的人,为什么它与我最初放在QR码中的数据有什么不同?如果可能的话,如何从中提取原始数据呢?

1 个答案:

答案 0 :(得分:0)

我不确定那些字节代表什么,可能zbar试图将字节解释为UTF-8字符串,即使QR处于字节模式。

切换到zxing修复所有内容,没有交错的意外字节,原始数据包含整个QR代码,包括模式,终结符,填充等...而且它似乎永远不会失败,而zbar似乎有时会失败。 / p>