Java 将字节[].toString()再次转换为字节[]
这是我的密码:Java 将字节[].toString()再次转换为字节[],java,string,bytearray,Java,String,Bytearray,这是我的密码: byte[] bytes = ZipUtil.compress("string"); String str = bytes.toString(); //---------- System.out.println("bytes: " + bytes); System.out.println("str: " + str); System.out.println("str.getBytes(): " + str.getBytes());
byte[] bytes = ZipUtil.compress("string");
String str = bytes.toString();
//----------
System.out.println("bytes: " + bytes);
System.out.println("str: " + str);
System.out.println("str.getBytes(): " + str.getBytes());
正如您所看到的那样,ZipUtil.compress()
返回byte[]
如何将str
内容转换为字节[]
更新:
输出:
bytes: [B@6fd33eef
str: [B@6fd33eef
str.getBytes(): [B@15c8f644
如您所见,如果我使用str.getBytes()
内容将被更改你喜欢这样吗
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如果你考虑字符编码,那么就要这样做< /P>
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
你喜欢这样吗
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如果你考虑字符编码,那么就要这样做< /P>
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
你喜欢这样吗
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如果你考虑字符编码,那么就要这样做< /P>
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
你喜欢这样吗
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如果你考虑字符编码,那么就要这样做< /P>
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
试一试
这边
按照修改后的问题进行更新,请按此方式执行
byte[] b = str.getBytes("UTF-8");
但若你们这样做,那个么编译器会抱怨添加你们抛出的声明或者用try-catch块包围
所以代码是这样的
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
试一试
这边
按照修改后的问题进行更新,请按此方式执行
byte[] b = str.getBytes("UTF-8");
但若你们这样做,那个么编译器会抱怨添加你们抛出的声明或者用try-catch块包围
所以代码是这样的
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
试一试
这边
按照修改后的问题进行更新,请按此方式执行
byte[] b = str.getBytes("UTF-8");
但若你们这样做,那个么编译器会抱怨添加你们抛出的声明或者用try-catch块包围
所以代码是这样的
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
试一试
这边
按照修改后的问题进行更新,请按此方式执行
byte[] b = str.getBytes("UTF-8");
但若你们这样做,那个么编译器会抱怨添加你们抛出的声明或者用try-catch块包围
所以代码是这样的
byte[] bytes = str.getBytes()
byte[] bytes = str.getBytes("UTF-8");
try {
byte[] b=str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如何将str内容转换为字节[]
如何将str内容转换为字节[]
如何将str内容转换为字节[]
如何将str内容转换为字节[]
首先,对数组调用
toString()
不会返回包含数组中字节的字符串。它将返回数组的类型([B
表示字节数组),后跟其哈希代码:[B@6fd33eef
。因此您的代码不正确
您可以使用new String(bytes)
从字节数组内容创建字符串,但这也不正确,因为这取决于您的默认编码,并且字节可能不代表此编码中的有效字符。只有iso8859-1可以工作,但您会得到一个充满不可打印字符的字符串
您可能需要一个可打印字符串,而不是字符串中的垃圾字符,因此需要一个Base64或十六进制编码器将字节转换为字符串,反之亦然。有这样一个编码器,以及Apache。两者都提供了将字节数组编码为可打印Base64字符串的方法,以及将此Base64字符串解码为原始字节的方法ray.首先,对数组调用
toString()
不会返回包含数组中字节的字符串。它将返回数组的类型([B
表示字节数组),后跟其哈希代码:[B@6fd33eef
。因此您的代码不正确
您可以使用new String(bytes)
从字节数组内容创建字符串,但这也不正确,因为这取决于您的默认编码,并且字节可能不代表此编码中的有效字符。只有iso8859-1可以工作,但您会得到一个充满不可打印字符的字符串
您可能需要一个可打印字符串,而不是字符串中的垃圾字符,因此需要一个Base64或十六进制编码器将字节转换为字符串,反之亦然。有这样一个编码器,以及Apache。两者都提供了将字节数组编码为可打印Base64字符串的方法,以及将此Base64字符串解码为原始字节的方法ray.首先,对数组调用
toString()
不会返回包含数组中字节的字符串。它将返回数组的类型([B
表示字节数组),后跟其哈希代码:[B@6fd33eef
。因此您的代码不正确
您可以使用new String(bytes)
从字节数组内容创建字符串,但这也不正确,因为这取决于您的默认编码,并且字节可能不代表此编码中的有效字符。只有iso8859-1可以工作,但您会得到一个充满不可打印字符的字符串
您可能需要一个可打印字符串,而不是字符串中的垃圾字符,因此需要一个Base64或十六进制编码器将字节转换为字符串,反之亦然。有这样一个编码器,以及Apache。两者都提供了将字节数组编码为可打印Base64字符串的方法,以及将此Base64字符串解码为原始字节的方法ray.首先,对数组调用
toString()
不会返回包含数组中字节的字符串。它将返回数组的类型([B
表示字节数组),后跟其哈希代码:[B@6fd33eef
。因此您的代码不正确
您可以使用new String(bytes)
从字节数组内容创建字符串,但这也不正确,因为这取决于您的默认编码,并且字节可能不代表此编码中的有效字符。只有iso8859-1可以工作,但您会得到一个充满不可打印字符的字符串
您可能需要一个可打印字符串,而不是字符串中的垃圾字符,因此需要一个Base64或十六进制编码器将字节转换为字符串,反之亦然。有这样一个编码器,以及Apache。两者都提供了将字节数组编码为可打印Base64字符串的方法,以及将此Base64字符串解码为原始字节的方法ray。使用字节和字符串时始终考虑编码。使用字节和字符串时始终考虑编码。使用字节和字符串时始终考虑编码。使用字节和字符串时始终考虑编码。谢谢。我想发送字节数组(