From e31ac261e34fbfae3c34d811ca5e82a91c3651c7 Mon Sep 17 00:00:00 2001 From: Marcus Winkler Date: Thu, 2 Jul 2015 16:45:16 +0200 Subject: [PATCH 1/2] Fixed substring call --- .../com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java b/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java index f0c8b8910..125017c00 100644 --- a/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java +++ b/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java @@ -215,7 +215,7 @@ final class PDF417HighLevelEncoder { if (b == 0) { b = 1; } - byte[] bytes = msg.substring(p, b).getBytes(encoding); + byte[] bytes = msg.substring(p, p + b).getBytes(encoding); if (bytes.length == 1 && encodingMode == TEXT_COMPACTION) { //Switch for one byte (instead of latch) encodeBinary(bytes, 0, 1, TEXT_COMPACTION, sb); From 18a72279dd25cd47beeedb9ea27e12035146f4a4 Mon Sep 17 00:00:00 2001 From: Marcus Winkler Date: Thu, 2 Jul 2015 17:55:00 +0200 Subject: [PATCH 2/2] Added unittest for PDF417 encoder using ISO-8859-1 with special chars --- .../google/zxing/pdf417/encoder/PDF417EncoderTestCase.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/src/test/java/com/google/zxing/pdf417/encoder/PDF417EncoderTestCase.java b/core/src/test/java/com/google/zxing/pdf417/encoder/PDF417EncoderTestCase.java index 9948ae611..315132fcc 100644 --- a/core/src/test/java/com/google/zxing/pdf417/encoder/PDF417EncoderTestCase.java +++ b/core/src/test/java/com/google/zxing/pdf417/encoder/PDF417EncoderTestCase.java @@ -36,6 +36,12 @@ public final class PDF417EncoderTestCase extends Assert { PDF417HighLevelEncoder.encodeHighLevel( "1%§s ?aG$", Compaction.AUTO, StandardCharsets.UTF_8); } + + @Test + public void testEncodeIso88591WithSpecialChars() throws Exception { + // Just check if this does not throw an exception + PDF417HighLevelEncoder.encodeHighLevel("asdfg§asd", Compaction.AUTO, StandardCharsets.ISO_8859_1); + } @Test public void testEncodeText() throws Exception {