KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am developping an Android app, and I need to encode and decode a bytes array in a QRCode generated with the ZXing app. My problem is that my message decoded does not exactly match the generated byte array. I tried to create a QRCode based on a byte array containing incrementing indexes, i.e. input = [0, 1, 2, ..., 124, 125, 126, 127, -128, -127,... -3, -2, -1, 0, 1, 2, ...] And after encoding the message in the QRCode and decoding it on the responder side, I obtain the following byte array output: output = [0, 1, 2, ..., 124, 125, 126, 127, 63, 63,... 63, 63, 63, 0, 1, 2, ...] All the "negative" byte values are turned to ASCII char 63: '?' question mark characters. I assume that something is going wrong with the encoding charset, but since I am using ISO-8859-1 which everyone claims to be the solution of such kind of issue ( other topic treating the same kind of issue or here ), I don't see where is my mistake, or if I am skipping a step during the instanciation of the encoding or the decoding. Here is the code that I execute to encode a given byte array: String text = ""; byte[] res = new byte[272]; for (int i = 0; i < res.length; i++) { res[i] = (byte) (i%256); } try { text = new String(res, "ISO8859_1"); } catch (UnsupportedEncodingException e) { // TODO } Intent intent = new Intent(Intents.Encode.ACTION); Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); intent.putExtra(Intents.Encode.TYPE, Contents.Type.TEXT); intent.putExtra(Intents.Encode.FORMAT, "ISO8859_1"); intent.putExtra(Intents.Encode.DATA, text); intent.putExtra(Intents.Encode.FORMAT, BarcodeFormat.QR_CODE.toString()); boolean useVCard = intent.getBooleanExtra(USE_VCARD_KEY, false); QRCodeEncoder qrCodeEn
Tags (comma-separated)
Save Edits
Cancel