Отлично, я рад, что это могло помочь! И спасибо, что принесли свое решение Java!
аружил случайную серию байтов, вставленных в любое поле BLOB-объектов при работе с базой данных через Adobe AIR. (из моих результатов это, кажется, всегда начинается сбайты [12, ...] но я в этом не уверен)
Я думаю, что это sizeinfo байтов, позвольте мне объяснить, как я пришел к такому выводу.
Сначала мой контекст: я манипулирую базами данных sqlite через Adobe AIR (на стороне клиента) и System.data.sqlite (на стороне сервера C #)
С System.data.sqlite, если я читаю Sqlite db, заполненный BLOB от Adobe AIR, мне нужно проверить эти байты, добавленные в начале AIR, а затем у меня все двоичные данные в правильной форме. ИДЕАЛЬНЫЙ!
С Adobe AIR, если я попытался прочитать базу данных sqlite, заполненную BLOB с помощью System.data.Sqlite, данные повреждены, я получаю ошибку! Очевидно, потому что у меня нет пропущенных байтов, исследованных AIR.
Конечно, я попытался добавить эти байты, просто скопировав серию из 3 байтов, которые я удалил в моем первом случае, но затем он вернул данные частично, а в случае изображений последние строки пикселей стали серыми, а на некоторых изображениях, которые у меня были, более или менее серые линии. Поскольку данные соответствовали серии изображений одинакового размера ~ 4k, и я добавил 3 байта из одного из них, и у меня был такой результат.
И Air также иногда выдает эту ошибку:
Ошибка: Ошибка № 2030: обнаружен конец файла.
Очевидно, что эти байты дают информацию о размере, но я не понимаю, как это происходит!?!
Я попытался добавить байтовый массив длиной 4 КБ, он имеет тенденцию добавлять 3 байта, но я попытался добавить 4 МБ, и он достигает 5 байтов.
Я нашел этот вопросКак конвертировать 3 байта в 24-битное число в C #? и я подумал, что это может быть, как информация о размере хранится.
Но я все еще не понимаю ...