From e68d564778c64560251c06011675efd99ff2c795 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 8 Oct 2025 13:50:00 -0500 Subject: [PATCH] Don't set to UTF8 if it's just ascii for better compatibility with scanners --- .../java/eu/siacs/conversations/services/BarcodeProvider.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/siacs/conversations/services/BarcodeProvider.java b/src/main/java/eu/siacs/conversations/services/BarcodeProvider.java index 497ed52a79ca9a35db320e7d9e9d28868de47334..e3a8cf6442f19cd1644c387a7853f487e9522f05 100644 --- a/src/main/java/eu/siacs/conversations/services/BarcodeProvider.java +++ b/src/main/java/eu/siacs/conversations/services/BarcodeProvider.java @@ -17,6 +17,7 @@ import android.util.Log; import androidx.annotation.Nullable; +import com.google.common.base.CharMatcher; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.common.BitMatrix; @@ -57,7 +58,7 @@ public class BarcodeProvider extends ContentProvider implements ServiceConnectio final QRCodeWriter barcodeWriter = new QRCodeWriter(); final Hashtable hints = new Hashtable<>(); hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M); - hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); + if (!CharMatcher.ascii().matchesAllOf(input)) hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); final BitMatrix result = barcodeWriter.encode(input, BarcodeFormat.QR_CODE, size, size, hints); final int width = result.getWidth(); final int height = result.getHeight();