From f9a49e00394e6bafc44683ef9c7403454c02d843 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 18 May 2022 15:21:57 +0100 Subject: [PATCH] improve JSON-format output --- .../service/devices/banglejs/BangleJSDeviceSupport.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java index 54285891b..5782c1306 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java @@ -188,6 +188,7 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport { LOG.info("UART TX: " + str); byte[] bytes; bytes = str.getBytes(StandardCharsets.ISO_8859_1); + // FIXME: somehow this is still giving us UTF8 data when we put images in strings. Maybe JSON.stringify is converting to UTF-8? for (int i=0;imtuSize) l=mtuSize; @@ -202,7 +203,7 @@ public class BangleJSDeviceSupport extends AbstractBTLEDeviceSupport { // toString creates '\u0000' instead of '\0' // FIXME: there have got to be nicer ways of handling this - maybe we just make our own JSON.toString (see below) json = json.replaceAll("\\\\u000([01234567])", "\\\\$1"); - json = json.replaceAll("\\\\u00(\\d\\d)", "\\\\x$1"); + json = json.replaceAll("\\\\u00([0123456789abcdef][0123456789abcdef])", "\\\\x$1"); return json; /*String json = "{"; Iterator iter = jsonObj.keys();