2013-12-12 2 views
4

Я работаю над хранением фрагмента JSON на QR-код типа 31, чтобы я мог сканировать его с помощью смартфона и разбирать JSON.Хранение сжатой буквенно-цифровой строки в QR-коде

Я бегу в несколько проблем ..

Тип 31 QR Code является «плотнейшая» (из-за отсутствия лучшего слова) код, который я могу получить мой Android устройство надежно сканировать. Это может содержать 2677 буквенно-цифровых символов с 7% -ой коррекцией ошибок.

Каковы мои возможности для сжатия моего оптимизированного/миниатюрного объекта JSON и кодирования его QR-кода? Понятно, сколько еще данных я могу хранить? Или я даже лаю по правильному дереву?

ответ

4

Все зависит от действительности.

  1. Доступен ли Wi-Fi? Если это так, поместите свои фрагменты JSON на веб-сервер и закодируйте их URL-адреса в QR-кодах. Задача решена.

  2. Если это для общего потребления, вам необходимо знать, что некоторые телефоны лучше других. Шахта действительно изо всех сил пыталась отсканировать version 25 QR code. Я считаю, что что-то большее, чем версия 20, является ненадежным.

  3. При использовании алфавитно-цифрового режима мало пользы. В нем хранятся только прописные буквы, цифры 0-9 и несколько знаков препинания. При 5½ битах на символ (11 бит на пару) его емкость почти идентична соответствующему двоичному режиму (8 бит на символ).

  4. В быстром тестировании gzip -n -9 уменьшил файл с 545 байтами JSON до 219 байт (40% от исходного размера). Вы могли бы сделать намного лучше, чем это, если бы вы сохранили ваши данные в компактном двоичном формате, а не в подробном тегированном формате.

  5. Если вы размещаете эти QR-коды публично, вам нужно будет включить какой-то механизм проверки подлинности (например, 32-разрядную контрольную сумму), чтобы предотвратить инъекции вредоносного кода и другие способы поработать.

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