diff --git a/core/src/com/google/zxing/client/result/ResultParser.java b/core/src/com/google/zxing/client/result/ResultParser.java index b8ec2486b..c6d93542f 100644 --- a/core/src/com/google/zxing/client/result/ResultParser.java +++ b/core/src/com/google/zxing/client/result/ResultParser.java @@ -178,18 +178,19 @@ public abstract class ResultParser { return result; } - private static void appendKeyValue(CharSequence keyValue, - Map result) { + private static void appendKeyValue(CharSequence keyValue, Map result) { String[] keyValueTokens = EQUALS.split(keyValue, 2); if (keyValueTokens.length == 2) { String key = keyValueTokens[0]; String value = keyValueTokens[1]; try { value = URLDecoder.decode(value, "UTF-8"); + result.put(key, value); } catch (UnsupportedEncodingException uee) { throw new IllegalStateException(uee); // can't happen + } catch (IllegalArgumentException iae) { + // continue; invalid data such as an escape like %0t } - result.put(key, value); } }