diff --git a/jadx-core/src/main/java/jadx/core/utils/StringUtils.java b/jadx-core/src/main/java/jadx/core/utils/StringUtils.java index 70dde6bbd..371273532 100644 --- a/jadx-core/src/main/java/jadx/core/utils/StringUtils.java +++ b/jadx-core/src/main/java/jadx/core/utils/StringUtils.java @@ -217,9 +217,9 @@ public class StringUtils { } private static void commonEscapeAndAppend(StringBuilder sb, char c) { - String replace = escapeXmlChar(c); + String replace = escapeWhiteSpaceChar(c); if (replace == null) { - replace = escapeWhiteSpaceChar(c); + replace = escapeXmlChar(c); } if (replace != null) { sb.append(replace); diff --git a/jadx-core/src/test/java/jadx/tests/functional/StringUtilsTest.java b/jadx-core/src/test/java/jadx/tests/functional/StringUtilsTest.java index d97cb3909..7989ae54f 100644 --- a/jadx-core/src/test/java/jadx/tests/functional/StringUtilsTest.java +++ b/jadx-core/src/test/java/jadx/tests/functional/StringUtilsTest.java @@ -51,4 +51,15 @@ class StringUtilsTest { private void checkCharUnescape(char input, String result) { assertThat(stringUtils.unescapeChar(input), is('\'' + result + '\'')); } + + @Test + public void testResStrValueEscape() { + checkResStrValueEscape("line\nnew line", "line\\nnew line"); + checkResStrValueEscape("can't", "can\\'t"); + checkResStrValueEscape("quote\"end", "quote\\\"end"); + } + + private void checkResStrValueEscape(String input, String result) { + assertThat(StringUtils.escapeResStrValue(input), is(result)); + } }