2013-11-07 3 views
0

Я делаю Apple Passbook Пасс для третьей стороны, а QR-код, который мне нужно показать на проходе, фактически сделан из другого QR-кода, декодируя его, потому что Apple только позволяет вам указать сообщение для QR-кода и а не фактическая картина его.Как проверить, что два (версии 10) QR-кода имеют одно и то же сообщение?

По какой-то причине QR-код, созданный с помощью Passbook, отличается от оригинального QR-кода стороннего производителя, хотя у них, похоже, есть такое же сообщение при декодировании. Оба они представляют собой QR-коды версии 10.

Я уже понял, что это связано с различными уровнями восстановления ошибок.

Как я могу проверить, что коды содержат ту же самую информацию (такое же кодирование и т. Д.)?

+1

Сканировать их и видеть? –

+0

@Velox Коды предназначены для машинного считывания, поэтому меня беспокоит наличие различий, которые не видны в декодере потребительского qr-кода. –

+0

Не должно быть разницы. QR-код - это QR-код. Да, есть разные уровни восстановления и т. Д. Но если ваш телефон может это сделать, то, возможно, все, что они читают, может это сделать. –

ответ

2

Вы должны декодировать их и сравнить строки. Не существует «невидимых» символов - возможно, непечатных, но они все равно появятся в строке.

Обратите внимание, что кодировка может отличаться по выбору шаблона маски и сегментов ECI.

+0

Я принимаю, потому что это правильно, насколько мой опыт прошел (наконец, я только что проверил с сторонним программным обеспечением). Из-за меня от меня исходило то, что «необработанные байты», предоставленные декодером [ZXing] (http://zxing.org/w/decode.jspx), были разными, но я думаю, что это была кодировка. –

+1

Здесь много слоев. Необработанные байты - это то, что вы получаете после отмены маскировки и исправления ошибок, поэтому они не зависят от этих факторов. Но две идентичные строки могут варьироваться в зависимости от того, как они кодируются: альфа-режим, режим байта, режим байта с альтернативным кодированием/ECI и т. Д. –