在Android中如何连接base64编码的字符串?

Ujj*_*sal 6 android

请帮我解决这个问题:

我有两个字符串用于电子邮件ID和密码

String name = "xyz@gmail.com";
String pass = "abc";
Run Code Online (Sandbox Code Playgroud)

我将这两个编码为Base64字符串

String encoded_name = new String(Base64.encode(name.getBytes(), 0));
String encoded_pass = new String(Base64.encode(pass.getBytes(), 0));
Run Code Online (Sandbox Code Playgroud)

我需要用空格连接这两个编码的字符串

String merge = encoded_name + " " + encoded_pass;
Run Code Online (Sandbox Code Playgroud)

我在控制台中检查了这个字符串

System.out.print("Concatenate string= " + merge);
Run Code Online (Sandbox Code Playgroud)

但是在控制台中,我得到了两行这样的结果

11-18 00:25:29.898: INFO/System.out(1244): Merge= eHl6QGdtYWlsLmNvbQ==
11-18 00:25:29.908: INFO/System.out(1244):  YWJj
Run Code Online (Sandbox Code Playgroud)

为什么这个讨厌的结果对我来说意外是为什么它不是单行打印.请帮我解决这个问题.

谢谢

Pir*_*iro 20

您应该使用文档中描述的NO_WRAP标志,Base64类不会添加其他换行符.

NO_WRAP:编码器标志位以省略所有行终止符(即,输出将在一条长行上).

因此,将您的行更改为以下内容:

String encoded_name = new String(Base64.encode(name.getBytes(), Base64.NO_WRAP));
String encoded_pass = new String(Base64.encode(pass.getBytes(), Base64.NO_WRAP));
Run Code Online (Sandbox Code Playgroud)

这将输出以下内容:

11-17 19:16:51.283: INFO/System.out(354): Concatenate string= eHl6QGdtYWlsLmNvbQ== YWJj
Run Code Online (Sandbox Code Playgroud)