diff --git a/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java b/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java index 8cae11466cb26533feb5535c16f280827718be44..75619a8fa83a90d5c65dcd7f55511dbdbded785d 100644 --- a/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java +++ b/utilcode/src/main/java/com/blankj/utilcode/util/EncodeUtils.java @@ -183,4 +183,34 @@ public final class EncodeUtils { return Html.fromHtml(input); } } + + /** + * Return the binary encoded string padded with one space + * + * @param input + * @return binary string + */ + public static String binEncode(final String input) { + StringBuilder stringBuilder = new StringBuilder(); + for (char i : input.toCharArray()) { + stringBuilder.append(Integer.toBinaryString(i)); + stringBuilder.append(' '); + } + return stringBuilder.toString(); + } + + /** + * Return UTF-8 String from binary + * + * @param input binary string + * @return UTF-8 String + */ + public static String binDecode(final String input){ + String[] splitted = input.split(" "); + StringBuilder sb = new StringBuilder(); + for(String i : splitted){ + sb.append(((char) Integer.parseInt(i.replace(" ", ""), 2))); + } + return sb.toString(); + } } diff --git a/utilcode/src/test/java/com/blankj/utilcode/util/EncodeUtilsTest.java b/utilcode/src/test/java/com/blankj/utilcode/util/EncodeUtilsTest.java index 6d17fa9075c55fcc548733beeb0498c7946224bf..34197c7d8798c53e9ef643937c6b13ffa1bce0fd 100644 --- a/utilcode/src/test/java/com/blankj/utilcode/util/EncodeUtilsTest.java +++ b/utilcode/src/test/java/com/blankj/utilcode/util/EncodeUtilsTest.java @@ -70,4 +70,10 @@ public class EncodeUtilsTest extends BaseTest { assertEquals(html, EncodeUtils.htmlDecode(encodeHtml).toString()); } + @Test + public void binEncode_binDecode(){ + String test = "test"; + String binary = EncodeUtils.binEncode(test); + assertEquals("test", EncodeUtils.binDecode(binary)); + } } \ No newline at end of file