可能重复:
Conversion of byte[] into a String and then back to a byte[]
我有以下代码,我试图通过测试,但似乎无法理解java世界中各种形式的编码。
import java.util.Arrays;
class Test {
static final byte[] A = { (byte)0x11, (byte)0x22, (byte)0x33, (byte)0x44, (byte)0x55, (byte)0x66, (byte)0x77, (byte)0x88, (byte)0x99, (byte)0x00, (byte)0xAA };
public static void main(String[] args) {
String s = new String(A);
byte[] b = s.getBytes();
if (Arrays.equals(A,b)) {
System.out.println("TEST PASSED!");
}
else {
System.out.println("TEST FAILED!");
}
}
}
我想我的问题是:将任意字节的字节数组转换为Java字符串的正确方法是什么,然后将相同的Java字符串转换为另一个字节数组,其长度和内容相同原始字节数组?
答案 0 :(得分:7)
答案 1 :(得分:4)
使用Base64。
Apache Commons Codec有Base64 class,支持以下界面:
String str = Base64.encodeBase64String(bytes);
byte[] newBytes = Base64.decodeBase64(str);